<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    狼愛上貍

    我胡漢三又回來了

    mongo常用操作

    shell#查詢
    查詢 name = "bruce" 的數據
    db.users.find({ name : "bruce" });

    條件操作符
    $gt : >
    $lt : <
    $gte: >=
    $lte: <=
    $ne : !=、<>
    $in : in
    $nin: not in
    $all: all
    $not: 反匹配(1.3.3及以上版本)

    查詢 name <> "bruce" and age >= 18 的數據
    db.users.find({name: {$ne: "bruce"}, age: {$gte: 18}});

    查詢 creation_date > '2010-01-01' and creation_date <= '2010-12-31' 的數據
    db.users.find({creation_date:{$gt:new Date(2010,0,1), $lte:new Date(2010,11,31)});

    查詢 age in (20,22,24,26) 的數據
    db.users.find({age: {$in: [20,22,24,26]}});

    查詢 age取模10等于0 的數據
    db.users.find('this.age % 10 == 0');
    或者
    db.users.find({age : {$mod : [10, 0]}});

    匹配所有
    db.users.find({favorite_number : {$all : [6, 8]}});
    可以查詢出{name: 'David', age: 26, favorite_number: [ 6, 8, 9 ] }
    可以不查詢出{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }

    查詢不匹配name=B*帶頭的記錄
    db.users.find({name: {$not: /^B.*/}});
    查詢 age取模10不等于0 的數據
    db.users.find({age : {$not: {$mod : [10, 0]}}});

    #返回部分字段
    選擇返回age和_id字段(_id字段總是會被返回)
    db.users.find({}, {age:1});
    db.users.find({}, {age:3});
    db.users.find({}, {age:true});
    db.users.find({ name : "bruce" }, {age:1});
    0為false, 非0為true

    選擇返回age、address和_id字段
    db.users.find({ name : "bruce" }, {age:1, address:1});

    排除返回age、address和_id字段
    db.users.find({}, {age:0, address:false});
    db.users.find({ name : "bruce" }, {age:0, address:false});

    數組元素個數判斷
    對于{name: 'David', age: 26, favorite_number: [ 6, 7, 9 ] }記錄
    匹配db.users.find({favorite_number: {$size: 3}});
    不匹配db.users.find({favorite_number: {$size: 2}});

    $exists判斷字段是否存在
    查詢所有存在name字段的記錄
    db.users.find({name: {$exists: true}});
    查詢所有不存在phone字段的記錄
    db.users.find({phone: {$exists: false}});

    $type判斷字段類型
    查詢所有name字段是字符類型的
    db.users.find({name: {$type: 2}});
    查詢所有age字段是整型的
    db.users.find({age: {$type: 16}});

    對于字符字段,可以使用正則表達式
    查詢以字母b或者B帶頭的所有記錄
    db.users.find({name: /^b.*/i});

    $elemMatch(1.3.1及以上版本)
    為數組的字段中匹配其中某個元素

    Javascript查詢和$where查詢
    查詢 age > 18 的記錄,以下查詢都一樣
    db.users.find({age: {$gt: 18}});
    db.users.find({$where: "this.age > 18"});
    db.users.find("this.age > 18");
    f = function() {return this.age > 18} db.users.find(f);

    排序sort()
    以年齡升序asc
    db.users.find().sort({age: 1});
    以年齡降序desc
    db.users.find().sort({age: -1});

    限制返回記錄數量limit()
    返回5條記錄
    db.users.find().limit(5);
    返回3條記錄并打印信息
    db.users.find().limit(3).forEach(function(user) {print('my age is ' + user.age)});
    結果
    my age is 18
    my age is 19
    my age is 20

    限制返回記錄的開始點skip()
    從第3條記錄開始,返回5條記錄(limit 3, 5)
    db.users.find().skip(3).limit(5);

    查詢記錄條數count()
    db.users.find().count();
    db.users.find({age:18}).count();
    以下返回的不是5,而是user表中所有的記錄數量
    db.users.find().skip(10).limit(5).count();
    如果要返回限制之后的記錄數量,要使用count(true)或者count(非0)
    db.users.find().skip(10).limit(5).count(true);

    分組group()
    假設test表只有以下一條數據
    { domain: "www.mongodb.org"
    , invoked_at: {d:"2009-11-03", t:"17:14:05"}
    , response_time: 0.05
    , http_action: "GET /display/DOCS/Aggregation"
    }
    使用group統計test表11月份的數據count:count(*)、total_time:sum(response_time)、 avg_time:total_time/count;
    db.test.group(
       { cond: {"invoked_at.d": {$gt: "2009-11", $lt: "2009-12"}}
       , key: {http_action: true}
       , initial: {count: 0, total_time:0}
       , reduce: function(doc, out){ out.count++; out.total_time+=doc.response_time }
       , finalize: function(out){ out.avg_time = out.total_time / out.count }
       } );

    [
      {
        "http_action" : "GET /display/DOCS/Aggregation",
        "count" : 1,
        "total_time" : 0.05,
        "avg_time" : 0.05
      }
    ]

    來自: http://hi.baidu.com/asminfo/blog/item/20301e22dcfcce50ac34de7a.html

    posted on 2011-03-23 10:26 狼愛上貍 閱讀(1074) 評論(0)  編輯  收藏 所屬分類: Mongo

    主站蜘蛛池模板: 亚洲国产精品一区二区三区久久 | 亚洲AV无码久久精品成人| 亚洲日韩久久综合中文字幕| 1000部拍拍拍18免费网站| 久久久久亚洲AV无码专区首JN | 亚洲成人网在线观看| 亚洲美女视频免费| 亚洲日本在线免费观看| 国产成人免费在线| 国产日本亚洲一区二区三区| 男人的好看免费观看在线视频| 亚洲日韩国产AV无码无码精品| 天天操夜夜操免费视频| 人妻无码中文字幕免费视频蜜桃| 亚洲免费一区二区| 免费在线看黄网站| 亚洲国产精品线观看不卡| 成年男女男精品免费视频网站| 亚洲成a∧人片在线观看无码| 又黄又爽的视频免费看| 特级做A爰片毛片免费看无码| 亚洲精品一品区二品区三品区 | 美丽姑娘免费观看在线观看中文版| 亚洲韩国—中文字幕| 久久经典免费视频| 老司机午夜性生免费福利 | 亚洲色偷偷狠狠综合网| 999久久久免费精品播放| 日韩亚洲国产高清免费视频| 亚洲高清国产拍精品青青草原 | 最好免费观看高清在线| 亚洲人成电影青青在线播放| 国产在线ts人妖免费视频| 伊人免费在线观看| 亚洲av无码久久忘忧草| 亚洲国产一区视频| 1000部国产成人免费视频| 高h视频在线免费观看| 婷婷亚洲久悠悠色悠在线播放| 成人毛片免费观看视频大全| 久久嫩草影院免费看夜色|