溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行MongoDB查詢文檔

發(fā)布時(shí)間:2021-11-03 10:40:57 來(lái)源:億速云 閱讀:183 作者:柒染 欄目:大數(shù)據(jù)

如何進(jìn)行MongoDB查詢文檔,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

查詢文件

使用inventory集合。插入inventory 集合內(nèi)容,請(qǐng)運(yùn)行以下命令:

db.inventory.insertMany([
{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);

選擇集合中的所有文檔

要選擇集合中的所有文檔,請(qǐng)將空文檔作為查詢過(guò)濾器參數(shù)傳遞給find方法。查詢過(guò)濾器參數(shù)確定選擇標(biāo)準(zhǔn):

db.inventory.find( {} )

此操作相當(dāng)于以下SQL語(yǔ)句:

SELECT * FROM inventory

有關(guān)方法語(yǔ)法的詳細(xì)信息,請(qǐng)參閱 find()。

指定等式條件

要指定相等條件,請(qǐng)<field>:<value> 在查詢過(guò)濾器文檔中使用表達(dá)式 :

{ < field1 >: < value1 > , ... }

以下示例從inventory集合中選擇status等于的所有文檔"D":

db.inventory.find( { status: "D" } )

此操作對(duì)應(yīng)于以下SQL語(yǔ)句:

SELECT * FROM inventory WHERE status = “D”

使用查詢運(yùn)算符指定條件

查詢過(guò)濾器文檔可以使用查詢運(yùn)算符,以指定在以下形式的條件:

{ < field1 >: { < operator1 >: < value1 > }, ... }

以下示例從inventory 集合中檢索所有文檔,其中status等于"A"或"D":

db.inventory.find( { status: { $in: [ "A", "D" ] } } )
注意

雖然您可以在查詢中使用$or運(yùn)算符,但 在對(duì)同一字段執(zhí)行相等性檢查時(shí),請(qǐng)使用$in運(yùn)算符而不是$or運(yùn)算符。

該操作對(duì)應(yīng)于以下SQL語(yǔ)句:

SELECT * FROM inventory WHERE status in (“A” , “D” )

有關(guān)MongoDB查詢運(yùn)算符的完整列表,請(qǐng)參閱Query and Projection Operators文檔。

指定AND條件

復(fù)合查詢可以為集合的文檔中的多個(gè)字段指定條件。隱式地,邏輯AND連接將連接復(fù)合查詢的子句,以便查詢選擇集合中與所有條件匹配的文檔。

以下示例檢索inventory 集合中statusequals "A" 和 qty小于($lt)30的所有文檔:

db.inventory.find( { status: "A", qty: { $lt: 30 } } )

該操作對(duì)應(yīng)于以下SQL語(yǔ)句:

SELECT * FROM inventory WHERE status = “A” AND qty < 30

見(jiàn)比較運(yùn)算符其他MongoDB的比較操作。

指定OR條件

使用$or運(yùn)算符,可以指定將每個(gè)子句與邏輯OR連接相連接的復(fù)合查詢,以便查詢選擇集合中至少與一個(gè)條件匹配的文檔。

以下示例檢索集合中status等于"A" 或 qty小于($lt)30的所有文檔:

db.inventory.find( { status: "A", qty: { $lt: 30 } } )

該操作對(duì)應(yīng)于以下SQL語(yǔ)句:

SELECT * FROM inventory WHERE status = “A” OR qty < 30
注意

有關(guān)其他MongoDB比較運(yùn)算符,請(qǐng)參見(jiàn)比較運(yùn)算符。

指定AND以及OR條件

在下面的例子中,對(duì)集合進(jìn)行復(fù)合查詢,取得滿足以下條件的文檔:status等于"A" 并且 qty小于($lt)30 或item的value以p為開(kāi)頭的文檔:

db.inventory.find( {
status: "A",
$or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
} )

該操作對(duì)應(yīng)于以下SQL語(yǔ)句:

SELECT * FROM inventory WHERE status = “A” AND ( qty < 30 OR item LIKE “p%” )
注意

MongoDB支持正則表達(dá)式$regex查詢以執(zhí)行字符串模式匹配。

看完上述內(nèi)容,你們掌握如何進(jìn)行MongoDB查詢文檔的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI