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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mongodb查询语句与Sql语句对比

發(fā)布時(shí)間:2023/12/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mongodb查询语句与Sql语句对比 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

左邊是mongodb查詢語句,右邊是sql語句。對(duì)照著用,挺方便。

db.users.find() select?*?from?users

db.users.find({"age"?:?27}) select?*?from?users?where?age?=?27

db.users.find({"username"?:?"joe",?"age"?:?27}) select?*?from?users?where?"username"?=?"joe"?and?age?=?27

db.users.find({},?{"username"?:?1,?"email"?:?1}) select?username,?email?from?users

db.users.find({},?{"username"?:?1,?"_id"?:?0}) //?no?case??//?即時(shí)加上了列篩選,_id也會(huì)返回;必須顯式的阻止_id返回

db.users.find({"age"?:?{"$gte"?:?18,?"$lte"?:?30}}) select?*?from?users?where?age?>=18?and?age?<=?30 //?$lt(<)?$lte(<=)?$gt(>)?$gte(>=)

db.users.find({"username"?:?{"$ne"?:?"joe"}}) select?*?from?users?where?username?<>?"joe"

db.users.find({"ticket_no"?:?{"$in"?:?[725,?542,?390]}}) select?*?from?users?where?ticket_no?in?(725,?542,?390)

db.users.find({"ticket_no"?:?{"$nin"?:?[725,?542,?390]}}) select?*?from?users?where?ticket_no?not?in?(725,?542,?390)

db.users.find({"$or"?:?[{"ticket_no"?:?725},?{"winner"?:?true}]}) select?*?form?users?where?ticket_no?=?725?or?winner?=?true

db.users.find({"id_num"?:?{"$mod"?:?[5,?1]}}) select?*?from?users?where?(id_num?mod?5)?=?1

db.users.find({"$not":?{"age"?:?27}}) select?*?from?users?where?not?(age?=?27)

db.users.find({"username"?:?{"$in"?:?[null],?"$exists"?:?true}}) select?*?from?users?where?username?is?null //?如果直接通過find({"username"?:?null})進(jìn)行查詢,那么連帶"沒有username"的紀(jì)錄一并篩選出來

db.users.find({"name"?:?/joey?/i}) //?正則查詢,value是符合PCRE的表達(dá)式

db.food.find({fruit?:?{$all?:?["apple",?"banana"]}}) //?對(duì)數(shù)組的查詢,?字段fruit中,既包含"apple",又包含"banana"的紀(jì)錄

db.food.find({"fruit.2"?:?"peach"}) //?對(duì)數(shù)組的查詢,?字段fruit中,第3個(gè)(從0開始)元素是peach的紀(jì)錄

db.food.find({"fruit"?:?{"$size"?:?3}}) //?對(duì)數(shù)組的查詢,?查詢數(shù)組元素個(gè)數(shù)是3的記錄,$size前面無法和其他的操作符復(fù)合使用

db.users.findOne(criteria,?{"comments"?:?{"$slice"?:?10}}) //?對(duì)數(shù)組的查詢,只返回?cái)?shù)組comments中的前十條,還可以{"$slice"?:?-10},?{"$slice"?:?[23,?10]};?分別返回最后10條,和中間10條

db.people.find({"name.first"?:?"Joe",?"name.last"?:?"Schmoe"})??//?嵌套查詢

db.blog.find({"comments"?:?{"$elemMatch"?:?{"author"?:?"joe",?"score"?:?{"$gte"?:?5}}}}) //?嵌套查詢,僅當(dāng)嵌套的元素是數(shù)組時(shí)使用,

db.foo.find({"$where"?:?"this.x?+?this.y?==?10"}) //?復(fù)雜的查詢,$where當(dāng)然是非常方便的,但效率低下。對(duì)于復(fù)雜查詢,考慮的順序應(yīng)當(dāng)是?正則?->?MapReduce?->?$where

db.foo.find({"$where"?:?"function()?{?return?this.x?+?this.y?==?10;?}"}) //?$where可以支持javascript函數(shù)作為查詢條件

db.foo.find().sort({"x"?:?1}).limit(1).skip(10); //?返回第(10,?11]條,按"x"進(jìn)行排序;?三個(gè)limit的順序是任意的,應(yīng)該盡量避免skip中使用large-number

?

轉(zhuǎn)自:http://www.cnblogs.com/viviman/archive/2012/11/21/2780562.html

轉(zhuǎn)載于:https://www.cnblogs.com/Kuleft/p/5407491.html

總結(jié)

以上是生活随笔為你收集整理的Mongodb查询语句与Sql语句对比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。