• MongoDB基本使用


     

    简单查询:查询过程中需要注意字段值的数据类型Boolean、String、DBRef....

      1.根据id查询:

        db.COLLECTION_NAME.find({_id:ObjectId("5bd80e1867f3337d4c2aac59")})

      2.根据字段查询:

        db.getCollection("qtfm__audio_info").find({_id:ObjectId("5bd80e1867f3337d4c2aac59"),code:"TT0000066_0001"})

     

        如果表字段的数据关联了其他的表,格式为DBRef的,查询的字段书写需要改变:

        db.getCollection("qtfm__audio_info").find({_id:ObjectId("5bd80e1867f3337d4c2aac59"),code:"TT0000066_0001",'album.$id':ObjectId('5bd56581db876943b4d0ec72')})

     

        boolean类型:

        db.getCollection("qtfm__audio_info").find({_id:ObjectId("5bd80e1867f3337d4c2aac59"),code:"TT0000066_0001",'album.$id':ObjectId('5bd56581db876943b4d0ec72'),deleted:true})

      

      3.条件操作符查询:

        大于($gt):Greater then, 值类型需要为int、double...

          db.qtfm__audio_info.find({playLength:{$gt:2}})

        

        小于($lt):Less than,值类型需要为int、double...

          db.qtfm__audio_info.find({playLength:{$lt:2}})

     

        大于等于($gte):Greater than equals

          db.qtfm__audio_info.find({playLength:{$gte:2}})

     

        不等于($ne):Not equals

          db.qtfm__audio_info.find({name:{$ne:'11'}})

     

        小于等于($lte):Less than equals

          db.getCollection("qtfm__audio_info").find({playLength:{$lte:22},code:"TT0000066_0001",'album.$id':ObjectId('5bd56581db876943b4d0ec72'),deleted:true})

     

        包含($in):

          db.qtfm__audio_info.find({name:{$in:["11",'12','13']}})

     

        不包含($nin):

          db.qtfm__audio_info.find({name:{$nin:["11",'12','13']}})

     

         或者($or):同一个字段,需要多个条件查询

          db.qtfm__audio_info.find({$or:[{name:'11'},{publishStatus:'Up'}],deleted:false})

     

         和($and):

          db.qtfm__audio_info.find( {

            $and : [
                { $or : [ { price : 0.99 }, { price : 1.99 } ] },
                { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
               ]
             } )

     

         存在($exist):可以用来判断某个字段是否存在,一般情况下,可以用来添加字段的时候来判断该字段是否存在

          db.qtfm__audio_info.find({name:{$ne:'11',$exists:false}}) //查询字段 name 存在,且值等于11

           

     

    插入

      插入单条数据:

        db.qtfm__audio_info.insert(
          {
              "_id" : ObjectId("5bd9d56832f7443f58b93e41"),
              "name" : "audio1",
              "album" : {
              "$ref" : "qtfm__album_info",
              "$id" : ObjectId("5bd3d1c832f7443f58b93e40")
            },
            "publishStatus" : "Up"
          })

     

      批量插入数据:Array类型的数据

        db.qtfm__audio_info.insert([

          {

            "_id" : ObjectId("5bd3d56832f7443f58b93e41"),
            "name" : "audio1",
            "album" : {
              "$ref" : "qtfm__album_info",
              "$id" : ObjectId("5bd3d1c832f7443f58b93e40")
            },
            "publishStatus" : "Up",

          },

          {
            "_id" : ObjectId("5bd85ab9edee1445ac240140"),
            "code" : "TT0000001_0001",
            "name" : "1",
            "album" : {
              "$ref" : "qtfm__album_info",
              "$id" : ObjectId("5bd3d1c832f7443f58b93e40")
            },
            "timeCreated" : NumberLong(1540905657271),
            "timeModified" : NumberLong(1540905657271),
            "deleted" : true,
            "_class" : "fm.qingting.common.data.model.AudioInfo",
            "publishStatus" : "Up"
          },

         ..........

        ])

     

     

    更新

      查询表中的字段是否存在,不存在就添加字段

        db.qtfm__audio_info.update(
          {'deleted_DDD':{$exists:false}},
          {$set:{'deleted_DDD':false}},
          false,
          true
        )

     

     

    分组

      

     

     

       条件: album.$id = 5bd3d1c832f7443f58b93e40

       分组字段: orderNum ,并且对orderNum 字段进行数量统计

        db.qtfm__audio_info.aggregate([
          {$match:{'album.$id':{$eq:ObjectId("5bd3d1c832f7443f58b93e40")}}},
          {$group:{'_id':'$orderNum',num_totoal:{$sum:1}}}
        ])

      

      

      

      条件: deleted = false

      分组字段: orderNum ,并且对orderNum 字段进行数量统计

        db.qtfm__audio_info.aggregate([
          {$match:{deleted:false}}},
          {$group:{'_id':'$orderNum',num_totoal:{$sum:1}}}
        ])

     

     

      以后遇到再更新。。。。。。

  • 相关阅读:
    作为另一个函数的值(读书摘)
    算法-二分查找与二叉排序树
    算法-图
    算法-二叉树
    算法-分治
    算法-回溯
    算法-动态规划
    算法-贪心
    算法-堆
    算法-栈,队列
  • 原文地址:https://www.cnblogs.com/mysouler/p/9962196.html
Copyright © 2020-2023  润新知