久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    MongoDB Collection聚集集合操作

     fshell 2013-05-14
    查看聚集集合基本信息  
    1、 查看幫助 
    db.yourColl.help(); 

    2、 查詢當前集合的數據條數 
    db.yourColl.count(); 

    3、 查看數據空間大小 
    db.userInfo.dataSize(); 

    4、 得到當前聚集集合所在的db 
    db.userInfo.getDB(); 

    5、 得到當前聚集的狀態 
    db.userInfo.stats(); 

    6、 得到聚集集合總大小 
    db.userInfo.totalSize(); 

    7、 聚集集合儲存空間大小 
    db.userInfo.storageSize(); 

    8、 Shard版本信息 
    db.userInfo.getShardVersion() 

    9、 聚集集合重命名 
    db.userInfo.renameCollection("users"); 
    將userInfo重命名為users 

    10、 刪除當前聚集集合 
    db.userInfo.drop(); 

    聚集集合查詢 
    1、 查詢所有記錄 
    db.userInfo.find(); 
    相當于:select * from userInfo; 
    默認每頁顯示20條記錄,當顯示不下的情況下,可以用it迭代命令查詢下一頁數據。注意:鍵入it命令不能帶“;” 
    但是你可以設置每頁顯示數據的大小,用DBQuery.shellBatchSize = 50;這樣每頁就顯示50條記錄了。 

    2、 查詢去掉后的當前聚集集合中的某列的重復數據 
    db.userInfo.distinct("name"); 
    會過濾掉name中的相同數據 
    相當于:select distict name from userInfo; 

    3、 查詢age = 22的記錄 
    db.userInfo.find({"age": 22}); 
    相當于: select * from userInfo where age = 22; 

    4、 查詢age > 22的記錄 
    db.userInfo.find({age: {$gt: 22}}); 
    相當于:select * from userInfo where age > 22; 

    5、 查詢age < 22的記錄 
    db.userInfo.find({age: {$lt: 22}}); 
    相當于:select * from userInfo where age < 22; 

    6、 查詢age >= 25的記錄 
    db.userInfo.find({age: {$gte: 25}}); 
    相當于:select * from userInfo where age >= 25; 

    7、 查詢age <= 25的記錄 
    db.userInfo.find({age: {$lte: 25}}); 

    8、 查詢age >= 23 并且 age <= 26 
    db.userInfo.find({age: {$gte: 23, $lte: 26}}); 

    9、 查詢name中包含 mongo的數據 
    db.userInfo.find({name: /mongo/}); 
    //相當于%% 
    select * from userInfo where name like ‘%mongo%’; 

    10、 查詢name中以mongo開頭的 
    db.userInfo.find({name: /^mongo/}); 
    select * from userInfo where name like ‘mongo%’; 

    11、 查詢指定列name、age數據 
    db.userInfo.find({}, {name: 1, age: 1}); 
    相當于:select name, age from userInfo; 
    當然name也可以用true或false,當用ture的情況下河name:1效果一樣,如果用false就是排除name,顯示name以外的列信息。 

    12、 查詢指定列name、age數據, age > 25 
    db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1}); 
    相當于:select name, age from userInfo where age > 25; 

    13、 按照年齡排序 
    升序:db.userInfo.find().sort({age: 1}); 
    降序:db.userInfo.find().sort({age: -1}); 

    14、 查詢name = zhangsan, age = 22的數據 
    db.userInfo.find({name: 'zhangsan', age: 22}); 
    相當于:select * from userInfo where name = ‘zhangsan’ and age = ‘22’; 

    15、 查詢前5條數據 
    db.userInfo.find().limit(5); 
    相當于:select top 5 * from userInfo; 

    16、 查詢10條以后的數據 
    db.userInfo.find().skip(10); 
    相當于:select * from userInfo where id not in ( 
    select top 10 * from userInfo 
    ); 

    17、 查詢在5-10之間的數據 
    db.userInfo.find().limit(10).skip(5); 
    可用于分頁,limit是pageSize,skip是第幾頁*pageSize 

    18、 or與 查詢 
    db.userInfo.find({$or: [{age: 22}, {age: 25}]}); 
    相當于:select * from userInfo where age = 22 or age = 25; 

    19、 查詢第一條數據 
    db.userInfo.findOne(); 
    相當于:select top 1 * from userInfo; 
    db.userInfo.find().limit(1); 

    20、 查詢某個結果集的記錄條數 
    db.userInfo.find({age: {$gte: 25}}).count(); 
    相當于:select count(*) from userInfo where age >= 20; 

    21、 按照某列進行排序 
    db.userInfo.find({sex: {$exists: true}}).count(); 
    相當于:select count(sex) from userInfo; 

    索引 
    1、 創建索引 
    db.userInfo.ensureIndex({name: 1}); 
    db.userInfo.ensureIndex({name: 1, ts: -1}); 

    2、 查詢當前聚集集合所有索引 
    db.userInfo.getIndexes(); 

    3、 查看總索引記錄大小 
    db.userInfo.totalIndexSize(); 

    4、 讀取當前集合的所有index信息 
    db.users.reIndex(); 

    5、 刪除指定索引 
    db.users.dropIndex("name_1"); 

    6、 刪除所有索引索引 
    db.users.dropIndexes(); 

    修改、添加、刪除集合數據 
    1、 添加 
    db.users.save({name: ‘zhangsan’, age: 25, sex: true}); 
    添加的數據的數據列,沒有固定,根據添加的數據為準 

    2、 修改 
    db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true); 
    相當于:update users set name = ‘changeName’ where age = 25; 

    db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true); 
    相當于:update users set age = age + 50 where name = ‘Lisi’; 

    db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true); 
    相當于:update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’; 

    3、 刪除 
    db.users.remove({age: 132}); 

    4、 查詢修改刪除 
    db.users.findAndModify({ 
        query: {age: {$gte: 25}}, 
        sort: {age: -1}, 
        update: {$set: {name: 'a2'}, $inc: {age: 2}}, 
        remove: true 
    }); 

    db.runCommand({ findandmodify : "users", 
        query: {age: {$gte: 25}}, 
        sort: {age: -1}, 
        update: {$set: {name: 'a2'}, $inc: {age: 2}}, 
        remove: true 
    }); 
    參數 詳解 默認值 
    query 查詢過濾條件 {} 
    sort 如果多個文檔符合查詢過濾條件,將以該參數指定的排列方式選擇出排在首位的對象,該對象將被操作 {} 
    remove 若為true,被選中對象將在返回前被刪除 N/A 
    update 一個 修改器對象 N/A 
    new 若為true,將返回修改后的對象而不是原始對象。在刪除操作中,該參數被忽略。 false 
    fields 參見Retrieving a Subset of Fields (1.5.0+) 
    All fields 
    upsert 創建新對象若查詢結果為空。 示例 (1.5.4+) 
    false 

    語句塊操作 
    1、 簡單Hello World 
    print("Hello World!"); 
    這種寫法調用了print函數,和直接寫入"Hello World!"的效果是一樣的; 

    2、 將一個對象轉換成json 
    tojson(new Object()); 
    tojson(new Object('a')); 

    3、 循環添加數據 
    > for (var i = 0; i < 30; i++) { 
    ... db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2}); 
    ... }; 
    這樣就循環添加了30條數據,同樣也可以省略括號的寫法 
    > for (var i = 0; i < 30; i++) db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2}); 
    也是可以的,當你用db.users.find()查詢的時候,顯示多條數據而無法一頁顯示的情況下,可以用it查看下一頁的信息; 

    4、 find 游標查詢 
    >var cursor = db.users.find(); 
    > while (cursor.hasNext()) { 
        printjson(cursor.next()); 

    這樣就查詢所有的users信息,同樣可以這樣寫 
    var cursor = db.users.find(); 
    while (cursor.hasNext()) { printjson(cursor.next); } 
    同樣可以省略{}號 

    5、 forEach迭代循環 
    db.users.find().forEach(printjson); 
    forEach中必須傳遞一個函數來處理每條迭代的數據信息 

    6、 將find游標當數組處理 
    var cursor = db.users.find(); 
    cursor[4]; 
    取得下標索引為4的那條數據 
    既然可以當做數組處理,那么就可以獲得它的長度:cursor.length();或者cursor.count(); 
    那樣我們也可以用循環顯示數據 
    for (var i = 0, len = c.length(); i < len; i++) printjson(c[i]); 

    7、 將find游標轉換成數組 
    > var arr = db.users.find().toArray(); 
    > printjson(arr[2]); 
    用toArray方法將其轉換為數組 

    8、 定制我們自己的查詢結果 
    只顯示age <= 28的并且只顯示age這列數據 
    db.users.find({age: {$lte: 28}}, {age: 1}).forEach(printjson); 
    db.users.find({age: {$lte: 28}}, {age: true}).forEach(printjson); 
    排除age的列 
    db.users.find({age: {$lte: 28}}, {age: false}).forEach(printjson); 

    9、 forEach傳遞函數顯示信息 
    db.things.find({x:4}).forEach(function(x) {print(tojson(x));}); 
    上面介紹過forEach需要傳遞一個函數,函數會接受一個參數,就是當前循環的對象,然后在函數體重處理傳入的參數信息。 

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      主站蜘蛛池模板: 免费国产午夜理论片不卡| 最新国产AV最新国产在钱| aaa少妇高潮大片免费看| 欧美巨大极度另类| 国内精品久久久久影院蜜芽 | 亚洲男女羞羞无遮挡久久丫| 精精国产XXX在线观看| 亚洲韩欧美第25集完整版| 国产精品99中文字幕| 人妻少妇456在线视频| 亚洲国产成人久久久网站| 国产中文成人精品久久久| 亚洲精品无码MV在线观看软件| 中国熟妇毛多多裸交视频| 亚洲精品55夜色66夜色| 国产成人一区二区三区免费| 国偷自产AV一区二区三区| 亚洲国产精品久久久天堂麻豆宅男 | 免费人成视频网站在线18| 无码人妻少妇色欲AV一区二区 | 伊人热热久久原色播放WWW| 国产精品中文字幕免费| 无码熟妇人妻AV在线影片最多| 吃奶呻吟打开双腿做受动态图| 精品国产丝袜自在线拍国语 | 国产V亚洲V天堂A无码| 麻花传媒免费网站在线观看| 午夜射精日本三级| 亚洲国产AV无码一区二区三区| 国产影片AV级毛片特别刺激| 亚洲人成无码网站久久99热国产| 精品午夜久久福利大片| 男女爽爽无遮挡午夜视频| 精品日本一区二区三区在线观看 | 好吊妞人成视频在线观看| 久久精品国产99久久久古代| 欧洲卡一卡二卡三爱区| 高清自拍亚洲精品二区| 国产亚洲色视频在线| 久久亚洲国产精品成人AV秋霞| 永久免费无码成人网站|