<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

    主站蜘蛛池模板: 国产午夜亚洲不卡| 亚洲午夜精品国产电影在线观看| a级毛片无码免费真人久久| 久久久无码精品亚洲日韩蜜桃| 99在线精品视频观看免费| 美女黄色毛片免费看| 亚洲第一中文字幕| 国产免费牲交视频| 99久久精品免费视频| 国产成人精品亚洲一区| 亚洲AV无码一区东京热久久| 免费无码A片一区二三区| 国产精品内射视频免费| 精品日韩99亚洲的在线发布| 亚洲国产婷婷香蕉久久久久久| 99爱在线观看免费完整版| 春暖花开亚洲性无区一区二区| 亚洲AV永久无码精品| 国产成人精品免费直播| 亚洲一区二区在线免费观看| 国产天堂亚洲精品| 亚洲天堂一区二区三区四区| 亚洲色偷偷狠狠综合网| 国产精品成人免费一区二区| 在线观看肉片AV网站免费| 噜噜噜亚洲色成人网站| 亚洲乱码一二三四五六区| 亚洲精品无码久久千人斩| 精品免费国产一区二区| 2021在线观看视频精品免费| 国产97视频人人做人人爱免费| 亚洲中文字幕乱码一区| 亚洲精品国产福利片| 亚洲啪啪综合AV一区| 午夜亚洲福利在线老司机| 99久久这里只精品国产免费| 久久免费福利视频| 亚洲免费视频一区二区三区| 久久精品国产亚洲AV| 精品亚洲成在人线AV无码| 亚洲色欲或者高潮影院|