首页 > 技术文章 > Robomongo可视化命令

uniqid 2017-12-29 10:16 原文

## 更新命令示例

db.getCollection('collection_name').update(
    {'_id':ObjectId('id string')},
    {$set:{'keyname.subkeyname':'value'}},
    {
        upsert: <boolean>,
        multi: <boolean>,
        writeConcern: <document>,
        collation: <document>,
        arrayFilters: [ <filterdocument1>, ... ]
    }
);


## find[One] 表示 find 或者 findOne
    db.getCollection('collection_name').find[One]();
    db.getCollection('collection_name').find[One]({userid:'190687'});
    db.getCollection('collection_name').find[One]({userid:'190687'}, {"userid":1,"doctor_id":1});
    db.getCollection('collection_name').find[One]({userid:'190687'}, {"userid":0,"doctor_id":0});

## find[One]之后的函数无顺序要求
    .find[One]().sort({"field":1}).limit(1).skip(1);

## 聚合查询
    https://docs.mongodb.com/manual/reference/method/db.collection.group/

查询条件:

    区间查询,可以是单边区间
    {"age":{"$gte":18, "$lte":40}}

    不等于
    {"name":{"$ne":"username"}}

    in, 可以是不同数据类型
    {"name":{"$in":["username",123]}}

    not in, 可以是不同数据类型
    {"name":{"$nin":["username1","username2"]}}

    or 查询
    {"$or": [{"name":"username"}, {"userid":{"$gte":100}}]}
    
    not 排除查询
    {"name": {"$not": {"$in":["username1","username2"]}}}

    键值不存在或值为null查询
    {"field_name":null}

    键值存在,且值为null
    {"field_name": {"$in": [null], "$exists":true}}

    正则查询, i表示忽略大小写
    {"name":/keyword/i}

    基于数组查询, 存储数据 "colors":["red", "green", "blue"]
    
    数组中包含"green"的数据
    {"colors":"green"}

    数组中包含"red","blue"的数据, 无顺序要求
    {"colors": {"$all": ["red","blue"]}}
    
    精确查询,顺序必须一致
    {"colors":["red", "green", "blue"]}
    
    按键值查询
    {"colors.0":"red"}

    按长度查询,$size不能和比较操作符联合使用。
    {"colors": {$size : 3}}

    $slice返回数组中的部分数据
        "$slice":2表示数组中的前两个元素。
        "$slice":-2表示数组中的后两个元素。
        "$slice":[2,1] 表示从第二个2元素开始取1个,如果大于元素数量,则取后面的全部数据。

## 其他

  forEach, 对数据集合循环

       print,  输出结果集

 

推荐阅读