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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

《MongoDB入门教程》第08篇 比较运算符

發(fā)布時(shí)間:2024/3/26 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《MongoDB入门教程》第08篇 比较运算符 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文將會(huì)介紹 MongoDB 中查找文檔時(shí)常用的一些比較運(yùn)算符,包括 $eq、$gt、$gte、$lt、$lte、$ne、$in 以及 $nin。

$eq 運(yùn)算符

$eq 運(yùn)算符用于匹配字段等于(=)指定值的文檔。$eq 運(yùn)算符的語(yǔ)法如下:

{ <field>: { $eq: <value> } }

以上語(yǔ)法等價(jià)于下面的寫(xiě)法:

{<field>: <value>}

我們創(chuàng)建一個(gè)集合 products 作為下文中的演示:

db.products.insertMany([{ "_id" : 1, "name" : "xPhone", "price" : 799, "releaseDate": ISODate("2011-05-14"), "spec" : { "ram" : 4, "screen" : 6.5, "cpu" : 2.66 },"color":["white","black"],"storage":[64,128,256]},{ "_id" : 2, "name" : "xTablet", "price" : 899, "releaseDate": ISODate("2011-09-01") , "spec" : { "ram" : 16, "screen" : 9.5, "cpu" : 3.66 },"color":["white","black","purple"],"storage":[128,256,512]},{ "_id" : 3, "name" : "SmartTablet", "price" : 899, "releaseDate": ISODate("2015-01-14"), "spec" : { "ram" : 12, "screen" : 9.7, "cpu" : 3.66 },"color":["blue"],"storage":[16,64,128]},{ "_id" : 4, "name" : "SmartPad", "price" : 699, "releaseDate": ISODate("2020-05-14"),"spec" : { "ram" : 8, "screen" : 9.7, "cpu" : 1.66 },"color":["white","orange","gold","gray"],"storage":[128,256,1024]},{ "_id" : 5, "name" : "SmartPhone", "price" : 599,"releaseDate": ISODate("2022-09-14"), "spec" : { "ram" : 4, "screen" : 9.7, "cpu" : 1.66 },"color":["white","orange","gold","gray"],"storage":[128,256]}])

以下示例使用 $eq 運(yùn)算符查找 products 集合中 price 字段等于 899 的所有文檔:

db.products.find({price: {$eq: 899} }, {name: 1,price: 1 })

我們也可以使用以下等價(jià)寫(xiě)法:

db.products.find({price: 899 }, {name: 1,price: 1 })

以上兩個(gè)示例的返回結(jié)果相同:

[{ _id: 2, name: 'xTablet', price: 899 },{ _id: 3, name: 'SmartTablet', price: 899 } ]

下面的示例使用 $eq 運(yùn)算符查找嵌套文檔 spec 中字段 ram 的值等于 4 的文檔:

db.products.find({"spec.ram": {$eq: 4} }, {name: 1,"spec.ram": 1 })

查詢返回的文檔如下:

[{ _id: 1, name: 'xPhone', spec: { ram: 4 } },{ _id: 5, name: 'SmartPhone', spec: { ram: 4 } } ]

接下來(lái)的示例使用 $eq 運(yùn)算符查找 products 集合中數(shù)組 color 包含“black”元素的文檔:

db.products.find({color: {$eq: "black"} }, {name: 1,color: 1 })

查詢返回的文檔如下:

[{ _id: 1, name: 'xPhone', color: [ 'white', 'black' ] },{ _id: 2, name: 'xTablet', color: [ 'white', 'black', 'purple' ] } ]

$gt 運(yùn)算符

$gt 運(yùn)算符用于匹配字段大于(>)指定值的文檔。$gt 運(yùn)算符的語(yǔ)法如下:

{ field: { $gt: value}}

以下示例使用 $gt 運(yùn)算符查找集合 products 中 price 大于 699 的文檔:

db.products.find({price: {$gt: 699} }, {name: 1,price: 1 })

查詢返回的結(jié)果如下:

[{ _id: 1, name: 'xPhone', price: 799 },{ _id: 2, name: 'xTablet', price: 899 },{ _id: 3, name: 'SmartTablet', price: 899 } ]

$gte 運(yùn)算符

$gte 運(yùn)算符用于匹配字段大于等于(>=)指定值的文檔。$gte 運(yùn)算符的語(yǔ)法如下:

{field: {$gte: value} }

以下示例使用 $gte 運(yùn)算符查找集合 products 中嵌入文檔 spec 的字段 screen 大于或者等于 9.5 的文檔:

db.products.find({"spec.screen": {$gte: 9.5} }, {name: 1,"spec.screen": 1 })

返回結(jié)果如下:

[{ _id: 2, name: 'xTablet', spec: { screen: 9.5 } },{ _id: 3, name: 'SmartTablet', spec: { screen: 9.7 } },{ _id: 4, name: 'SmartPad', spec: { screen: 9.7 } },{ _id: 5, name: 'SmartPhone', spec: { screen: 9.7 } } ]

$lt 運(yùn)算符

$lt 運(yùn)算符用于匹配字段小于(<)指定值的文檔。$lt 運(yùn)算符的語(yǔ)法如下:

{field: {$lt: value} }

以下示例使用 $lt 運(yùn)算符查找集合 products 中數(shù)組字段 storage 至少包含一個(gè)小于 128 的元素的文檔:

db.products.find({storage: {$lt: 128} }, {name: 1,storage: 1 })

查詢返回的文檔如下:

[{ _id: 1, name: 'xPhone', storage: [ 64, 128, 256 ] },{ _id: 3, name: 'SmartTablet', storage: [ 16, 64, 128 ] } ]

$lte 運(yùn)算符

$lte 運(yùn)算符用于匹配字段小于等于(<=)指定值的文檔。$lte 運(yùn)算符的語(yǔ)法如下:

{field: {$lte: value} }

以下示例使用 $lte 運(yùn)算符查找集合 products 中發(fā)布日期早于或者等于 2015-01-11 的所有文檔:

db.products.find({"releaseDate": {$lte: new ISODate('2015-01-01')} }, {name: 1,releaseDate: 1 });

查詢返回的文檔如下:

[{_id: 1,name: 'xPhone',releaseDate: ISODate("2011-05-14T00:00:00.000Z")},{_id: 2,name: 'xTablet',releaseDate: ISODate("2011-09-01T00:00:00.000Z")} ]

$ne 運(yùn)算符

$ne 運(yùn)算符匹配字段不等于(<>)指定值的文檔。$ne 運(yùn)算符的語(yǔ)法如下:

{ field: {$ne: value}}

以下示例使用 $ne 運(yùn)算符查找集合 products 中 price 不等于 899 的文檔:

db.products.find({price: {$ne: 899} }, {name: 1,price: 1 })

查詢返回的文檔如下:

[{ _id: 1, name: 'xPhone', price: 799 },{ _id: 4, name: 'SmartPad', price: 699 },{ _id: 5, name: 'SmartPhone', price: 599 },{ _id: 6, name: 'xWidget' } ]

$in 運(yùn)算符

$in 運(yùn)算符匹配字段等于(=)數(shù)組中任意值的文檔。$in 運(yùn)算符的語(yǔ)法如下:

{ field: { $in: [<value1>, <value2>,...] }}

如果 field 只有一個(gè)值,$in 運(yùn)算符匹配該字段等于數(shù)組中任意值的文檔。如果 field 也是一個(gè)數(shù)組,$in 運(yùn)算符匹配該數(shù)組包含數(shù)組 [value1, value2,…] 中任意值的文檔。

數(shù)組列表 value1, value2, … 可以是一個(gè)常量列表或者正則表達(dá)式列表。

正則表達(dá)式是一組定義搜索模式的字符,例如正則表達(dá)式 /\d+/ 匹配任何數(shù)組,包括1,123,1234 等。

以下示例使用 $in 運(yùn)算符查找 products 集合中 price 字段等于 599 或者 799 的文檔:

db.products.find({price: {$in: [699, 799]} }, {name: 1,price: 1 })

查詢返回的文檔如下:

[{ _id: 1, name: 'xPhone', price: 799 },{ _id: 4, name: 'SmartPad', price: 699 } ]

$nin 運(yùn)算符

$nin 運(yùn)算符匹配字段不等于(!=)數(shù)組中任意值的文檔,或者指定字段不存在的文檔。$nin 運(yùn)算符的語(yǔ)法如下:

{ field: { $nin: [ <value1>, <value2> ...]} }

以下示例使用 $nin 運(yùn)算符查找 products 集合中 price 字段既不等于 599 也不等于 799 的文檔:

db.products.find({price: {$nin: [699, 799]} }, {name: 1,price: 1 })

查詢返回的文檔如下:

[{ _id: 2, name: 'xTablet', price: 899 },{ _id: 3, name: 'SmartTablet', price: 899 },{ _id: 5, name: 'SmartPhone', price: 599 } ]

以下示例使用 $nin 運(yùn)算符查找 color 數(shù)組字段中不包含任何匹配正則表達(dá)式 /^g+/ 或者 /^w+/ 的元素的文檔:

db.products.find({color: {$nin: [/^g+/, /^w+/]} }, {name: 1,color: 1 })

查詢返回的文檔如下:

[ { _id: 3, name: 'SmartTablet', color: [ 'blue' ] } ]

總結(jié)

以上是生活随笔為你收集整理的《MongoDB入门教程》第08篇 比较运算符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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