日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mongo04---基本查询

發布時間:2025/3/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mongo04---基本查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
核心: mongod: 數據庫核心進程 mongos: 查詢路由器,集群時用 mongo: 交互終端(客戶端)二進制導出導入: mongodump:導出bson數據 mongorestore: 導入bson bsondump: bson轉換為json monoplog:數據導出導入 mongoexport: 導出json,csv,tsv格式 mongoimport: 導入json,csv,tsv診斷工具: mongostats mongotop mongosniff 用來檢查mongo運行狀態1: 創建數據庫目錄, 如 /data/db , 2: ./mongodb --dbpath /data/db 3: mongodb要求磁盤剩余空間>=4G, 如果不夠,可以用 --smallfiles 選項1:插入單條記錄,不指定主鍵 db.collectionName.insert({name:'lisi',age:28}); 2: 插入單條記錄,指定主鍵 db.collctionName.insert({_id:3,name:'lisi',age:28}); 3: 插入多條記錄 db.collctionName.insert([ {_id:4,name:'wangwu',age:60} ]);Update時可用的操作符 例: ->db.user.insert({name:'lisi',age:12,sex:'male',height:123,area:'haidian'}); ->db.user.update({name:'lisi'},{$set:{area:'chaoyang'},$unset:{height:1},$inc:{age:1},$rename:{sex:'gender'}}); > db.user.find(); { "_id" : ObjectId("51fc01c4f5de93e1f2856e33"), "age" : 13, "area" : "chaoyang", "gender" : "male", "name" : "lisi" }$setOnInsert ->相當于mysql中的列的默認值$gt:>,$gte:>=,$in=in,$lt:<,$lte:<=,$ne:!=,$nin:not in,$all:所有,$or:or,$andand,$not:not,$nor:都不成立,$exists:某列存在,$mod:取模,$type:數據為某類型,$where,$regex:正則表達式,$inc:增長,$rename:重命名列,$setOnInsert,$set:設置字段的新值,$unset:刪除指定的列查詢表達式: db.goods.find().count()//31 db.goods.find({goods_id:32})//goods_id=32的1: 最簡單的查詢表達式 {filed:value} ,是指查詢field列的值為value的文檔 2: $ne --- != 查詢表達式 {field:{$ne:value}} 作用--查filed列的值 不等于 value 的文檔 3: $nin --> not in 4: $all 語法: {field:{$all:[v1,v2..]}} 是指取出 field列是一個數組,且至少包含 v1,v2值 5: $exists 語法: {field:{$exists:1}} 作用: 查詢出含有field字段的文檔 6: $nor, {$nor,[條件1,條件2]}是指 所有條件都不滿足的文檔為真返回------------------------------------------------------ db.goods.find({cat_id:{$ne:3}, //cat_id不等于3shop_price:{$gt:1000}, //shop_price大于1000shop_price:{$lte:100}}, //低于或等于market_price:{$in:[4,11]}, //4或者11goods_name:"KD876", //goods_name="KD876"$and:[{shop_price:{$gt:100}},{shop_price:{$lt:1000}}], //價格介于100--1000 },{cat_id:1, //查cat_id,goods_name列,不查_idgoods_name:1,_id:0} ) ------------------------------------------------------ 1.7:取出不屬于第3欄目且不屬于第11欄目的商品($and $nin和$nor分別實現)db.goods.find({$and:[ //and是并且{cat_id:{$ne:3}}, //不等于3{cat_id:{$ne:11}} //不等于11]},{goods_name:1,cat_id:1})------------------------------------------------------ db.goods.find({goods_id:{$mod:[5,0]} //對哪個列做判斷,取模,對5取模為0}, { //取那幾列goods_id:1,goods_name:1,_id:0} )------------------------------------------------------ db.goods.find({age:{$exists:1} //有age列的json文檔,colletion的每一行就是一個bson,json列結構不一樣,} )------------------------------------------------------db.stu.insert(name:"lily",hobby:['a','b','c'])db.stu.insert(name:"lucy",hobby:['e','b','c'])db.stu.find({hobby:{$all:['b','c']} //所指定的內容都要有}) //2條都出來db.stu.find({hobby:{$all:['q','c']} }) //沒有---------------------where要把二進制轉換為json對象--------------------------------- db.goods.find({$where:'this.cat_id ==3 && this.cat_id ==4' //用where把二進制文件轉換為一個json對象,不用where是直接二進制比較,where的效率低})db.goods.find({$where:'this.shop_price > 300 && this.shop_price < 400 || this.shop_price > 3000 && this.shop_price < 4000'}) -----------------正則表達式效率也低------------------------------------- db.goods.find({goods_name:{$regex:/^諾基亞.*/} //諾基亞開頭的} )------------------------------------------------------ db.goods.find({hobby:{$type:2} //查詢age列是字符串類型的,double:1,string:2,object:3,Array:4,boolean:8,date:9,null:10,})------------------------------------------------------ db.goods.find({cat_id:{$nin:[3,11]}},{goods_name:1,cat_id:1});------------------------------------------------------ db.goods.find({$nor:[ //都不成立{cat_id:3},{cat_id:11}]},{goods_name:1,cat_id:1});1.8:取出價格大于100且小于300,或者大于4000且小于5000的商品() db.goods.find({$or: //2個or打中括號,對多列限制[{ //每一個打大括號$and:[ //2個and打中括號{shop_price:{$gt:100}}, //每一個打大括號,對一列限制{shop_price:{$lt:300}}]},{$and:[{shop_price:{$gt:4000}},{shop_price:{$lt:5000}}]}]},{goods_name:1,shop_price:1} );1.9:取出goods_id%5 == 1, 即,1,6,11,..這樣的商品 db.goods.find({goods_id:{$mod:[5,1]}});1.10:取出有age屬性的文檔 db.stu.find({age:{$exists:1}}); 含有age屬性的文檔將會被查出------------------------------------------------------ use shop for(var i=0;i<10000;i++){db.bar.insert({_id:i++,title:'hello'+i}); } //迅速在mongo里面插入10000條數據 db.bar.find().count(); ------------------------------------------------------ 游標cursor分頁查詢: 通俗的說,游標不是查詢結果,而是查詢的返回資源,或者接口. 通過這個接口,你可以逐條讀取.就像php中的fopen打開文件,得到一個資源一樣, 通過資源,可以一行一行的讀文件. </pre>

?

總結

以上是生活随笔為你收集整理的mongo04---基本查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。