美文网首页读百遍
mongo常用语句

mongo常用语句

作者: ShutLove | 来源:发表于2016-12-05 23:12 被阅读24次

    一、find
    db.tianyc02.find({age:{$lt:100}})
    db.tianyc02.find({age:{$lt:100,$gt:20}})
    db.tianyc02.find({age:{$ne:11}})
    db.tianyc02.find({age:{$in:[11,22]}})
    db.tianyc02.find({age:{$nin:[11,22]}})
    db.tianyc02.find({$or:[{age:11},{age:22}]})
    db.tianyc02.find({$or:[{age:11},{name:'xttt'}]})
    db.tianyc02.find({age:{$mod:[11,0]}})age对11取模等于0
    db.tianyc02.find({age:{$not:{$mod:[11,0]}}})
    db.res_comment.find({"comm_data":{$regex:"[[0-9]{4,5}|[0-9]{2}]"}})匹配[9999|01]或者[10001|11]

    二、update
    1、db.collection.update( criteria, objNew, upsert, multi )
    criteria相当于where条件;
    objNew相当于set;
    upsert当不存在要更新的记录,是否插入一条记录,默认为false;
    multi是否更新全部符合条件的记录,默认为false。
    2、objNew中常用的操作符:
    $inc:{$inc: {field: value}},将field字段增加value值,如果field字段不存在,则增加field字段。
    $set:{$set: {field: value}},将field字段设置为value值,如果field字段不存在,则增加field字段
    $unset:{$unset: {field: 1}},将field字段删除。
    $push:{$push: {field: value}},field必须是数组,将value追加到数组中,field不存在,则新建一个field字段的数组。
    $pull:{$pull: {field: value}},从数组field内删除一个等于value的值。

    三、db.collection.aggregate(pipeline, options);
    1、pipeline数组类型,options数组类型
    2、pipeline可选参数:
    $project 选择的字段名
    $match 放在group前相当于where使用,放在group后面相当于having使用
    $sort 排序1升-1降 sort一般放在group后,也就是说得到结果后再排序,如果先排序再分组没什么意义;
    $limit 相当于limit m,不能设置偏移量
    $skip 跳过第几个文档
    $group: { _id: <expression>, <field1>: { <accumulator1> : <expression1> }, ... 按什么字段分组,注意所有字段名前面都要加$,否则mongodb就为以为不加$的是普通常量,其中accumulator又包括以下几个操作符# $sum,$avg,$first,$last,$max,$min,$push,$addToSet#如果group by null就是 count(*)的效果
    3、例子:
    查找发了评论内容是Tesing的所有用户
    db.comment.aggregate([
    {$match:{"comm_data":"Testing"}},
    {$group:{_id:"$comm_from_uid"}}
    ])
    查找当前发布评论数最多的10个用户
    db.comment.aggregate([
    {$group:{_id:"$comm_from_uid", count:{$sum:1}}},
    {$sort:{count:-1}},
    {$limit:10}
    ])

    相关文章

      网友评论

        本文标题:mongo常用语句

        本文链接:https://www.haomeiwen.com/subject/duplmttx.html