mongodb 常用命令 (去重、删库)

去重

db.collction.aggregate(
    [ 
        //{$match:{type:1,action:3}}, //可以加条件给这里 匹配type=1 action=3 可选
        { //根据title、id分组,$group只会返回参与分组的字段,使用$addToSet在返回结果数组中增加_id字段)
            $group: { 
                _id: {
                    title: '$title',
                    id: '$id'
                },
                count: {
                    $sum: 1
                },
                dups: {
                    $addToSet: '$_id'
                }
            } 
        }, 
        { 
            $match: {
                count: { //(匹配数量大于1的数据
                    $gt: 1 
                }
            } 
        } 
    ]
)
.forEach( //(使用forEach循环根据_id删除数据)
    function( doc ){ 
        doc.dups.shift(); 
        db.collection.remove(
            {
                _id: {
                    $in: doc.dups
                }
            }
        ); 
    }
)

删库(table)

db.collection.drop()

去重查询 distinct

db.collection.distinct(title)

分页

  • 查询在5-10之间的数据
    db.collection.find().limit(10).skip(5);

条数

db.collection.find({}).count()

排序

//升序
db.collection.find().sort({"id":1})
//降序
db.collection.find().sort({"id":-1})

指定条件查询

  • id = 100 age=18
    db.collection.find({ id:100 , age : 18 })
  • id > 100
    db.collection.find({ id:{$gt :100 } })
  • id >= 100
    db.collection.find({ id:{ $gte:100 }})
  • id < 100
    db.collection.find({ id:{$lt :100 }})
  • id <= 100
    db.collection.find({ id:{ $lte:100 }})
  • id => 100 与 id <= 150
    db.collection.find({ id:{ $gte:100 , $lte:150}})
  • 指定列 id title,1 查询 -1 不查询
    db.collection.find({ } , { id:1 , title : 1 })
  • or 查询
    db.collection.find({$or:[ {age:15},{age:25 } ]})

    原文作者:赖次Go
    原文地址: https://www.jianshu.com/p/79ef80b26958
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞