數(shù)據(jù)加載中……
          mongoDB的學(xué)習(xí)筆記(2)
             實驗室從去年開始接觸Nosql,不過那個時候自己不是負(fù)責(zé)這部分的所以只是介于組會的時候討論了解。后來去實習(xí),這個東東越來越火了。以至于俺覺得自己也要去學(xué)習(xí)一下,這些天一直看這方面的東西。最大的感覺就是它組織結(jié)構(gòu)的變化帶來的方便,這也是算是膚淺的感覺吧,新手一般都有這樣的體驗,至于網(wǎng)上一直叫好的速度快(據(jù)說比傳統(tǒng)的關(guān)系型數(shù)據(jù)庫快5倍左右),由于木有實戰(zhàn)的體驗,目前還木有深刻的認(rèn)識。前段時間一直在做一個MIS系統(tǒng),被數(shù)據(jù)庫折騰的卻是夠嗆,數(shù)據(jù)庫設(shè)計的人太過考慮各種范式,以至于開發(fā)困難很多。在看看mogodb確實給人煥然一新的感覺。呵呵。目前感覺就是這么多,繼續(xù)記錄一下自己的學(xué)習(xí)的筆記,這部分主要是mogodb的查詢操作。mogodb的查詢功能確實比標(biāo)準(zhǔn)的sql強(qiáng)大很多,特別是各種修改器和基于js函數(shù)的$where查詢。
          ----start----

          Mongodb的查詢操作

          1、查詢?nèi)考?/span>

          db.myMongodb.post.find() 

          如果是console的話,默認(rèn)顯示20條記錄

          2、返回指定的鍵

          db.myMongodb.post.find({}, {"foo" : 1, "baz" : 1})

          返回鍵foo和健baz,同時默認(rèn)返回_id鍵的值

          3、指定不返回的鍵

          db.myMongodb.post.find({}, {"foo" : 0})

          返回除foo之外的其他鍵

          4、判定條件查詢

          a) “$lt” 小于

          b) “$lte”小于等于

          c) “$gt”大于

          d) “$gte”大于等于

          e) “$ne”不等于

          db.myMongodb.user.find({"age" : {"$gte" : 18, "$lte" : 30}})

          5、其他條件查詢

          a) “$in” :是否在某一個集合的查詢

          db.myMongodb.user.find({"age" : {"$in" : [17,18,19]}})

          b) “$nin”:與in相對應(yīng),不處于某個結(jié)合的文檔

          c) “$or”:多條件查詢

          db.myMongodb.user.find({"$or" : [{"age" : 17}, {"age" : 18}]})

          d) “$not”非的情況下使用。其他條件可以基于它

          e) “$mod”取模查詢

          f) “$null”可以匹配值為null的字段,同時也能匹配鍵不存在的文檔

          如果同時要判定鍵存在,需要加上"$exists" 判定

          6、查詢數(shù)組

          a) “$all” 通過多個元素匹配數(shù)組

          db.myMongodb.food.find({"fruit" : {"$all" : ["apple", "oracle"]}})

          b) 數(shù)組下標(biāo)匹配

          db.myMongodb.food.find({"fruit.2" :  "peach"})

          c) "$size"數(shù)組長度匹配 

          db.myMongodb.food.find("fruit" : {"$size" : 3})

          7、"$slice"指定返回集合的個數(shù)

          db.myMongodb.posts.find(criteria, {"$silce" : n})

          n = 10 返回前10條記錄

          n = -10 返回后10條記錄

          n = [23, 10] 返回從23條記錄開始的10條記錄,感覺應(yīng)該可以做分頁

          8、采用點表示法查詢內(nèi)嵌文檔(推薦)

          db.myMongodb.find({"name.first" : "Wang", "name.last" : "Hai"})

          9、采用分層的方式查詢

          db.myMongodb.find({"name" : {"first" : "Wang, "last" : "Hai""}})

          10、$where查詢

          $where查詢非常強(qiáng)大,它可以添加js的函數(shù)實現(xiàn)高級的查詢功能。

          基本樣式如下:

          db.myMongodb.find({"$where" : function() {}})

          如果function返回true,該記錄就返回。否則就不返回。

          【對js不夠熟悉。。面壁去了】

          posted on 2011-12-01 17:21 潘潘.eagle 閱讀(1871) 評論(0)  編輯  收藏 所屬分類: mongoDB


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 泰州市| 当雄县| 盱眙县| 连平县| 连城县| 广元市| 绍兴市| 红安县| 南丹县| 资阳市| 清镇市| 西贡区| 类乌齐县| 镇远县| 玉溪市| 荥阳市| 辽宁省| 乐昌市| 尤溪县| 德清县| 霍城县| 济源市| 化隆| 南召县| 汽车| 庆云县| 同仁县| 永嘉县| 壤塘县| 泰兴市| 桃源县| 延边| 磐石市| 益阳市| 马尔康县| 岳普湖县| 英山县| 寿光市| 广饶县| 岱山县| 临安市|