mongodb 语法练习

官方文档:https://docs.mongodb.com/

1、聚集后进行统计,使用两个group
db.souhu_three.aggregate([
    {$group:{_id:"$userId"}},
    {$group:{_id:null,count:{$sum:1}}}
])
2、根据每个单独进行统计(使用allowDiskUse是因为可能内存溢出)
db.souhu_three.aggregate([
{ "$group": {
        "_id": "$id",
        "distinctCount": { "$sum": 1 }
    }}
],{ allowDiskUse: true })
3、去重并清洗数据库
db.souhu_authur_id.aggregate([
    {
        $group: { _id: {url: '$authorId'},count: {$sum: 1},dups: {$addToSet: '$_id'}}
    },
    {
        $match: {count: {$gt: 1}}
    }
]).forEach(function(doc){
    doc.dups.shift();
    db.test_first.remove({_id: {$in: doc.dups}});
})
4、选取指定范围的数据
#  limit用于限定多少条数,skip表示从哪一条开始,两者结合即可选取范围
db.souhu_page.find({},{_id:0,id:1}).limit(3).skip(0)
5、创建索引,加速查询修改

尤其是对百万级以上数据,效果很明显

# 创建以id增序的索引
db.souhu_page.createIndex({'id':1})
# 查询索引
db.souhu_page.getIndexes()
# 删除索引
db.souhu_page.drop('name':1)

未完继续补充

原文地址:https://www.cnblogs.com/gambler/p/12043892.html