您好,登錄后才能下訂單哦!
如何進行MongoDB查詢文檔,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
使用inventory集合。插入inventory 集合內容,請運行以下命令:
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" } ]);
要選擇集合中的所有文檔,請將空文檔作為查詢過濾器參數傳遞給find方法。查詢過濾器參數確定選擇標準:
db.inventory.find( {} )
此操作相當于以下SQL語句:
SELECT * FROM inventory
有關方法語法的詳細信息,請參閱 find()。
指定等式條件
要指定相等條件,請<field>:<value> 在查詢過濾器文檔中使用表達式 :
{ < field1 >: < value1 > , ... }
以下示例從inventory集合中選擇status等于的所有文檔"D":
db.inventory.find( { status: "D" } )
此操作對應于以下SQL語句:
SELECT * FROM inventory WHERE status = “D”
查詢過濾器文檔可以使用查詢運算符,以指定在以下形式的條件:
{ < field1 >: { < operator1 >: < value1 > }, ... }
以下示例從inventory 集合中檢索所有文檔,其中status等于"A"或"D":
db.inventory.find( { status: { $in: [ "A", "D" ] } } )
雖然您可以在查詢中使用$or運算符,但 在對同一字段執行相等性檢查時,請使用$in運算符而不是$or運算符。
該操作對應于以下SQL語句:
SELECT * FROM inventory WHERE status in (“A” , “D” )
有關MongoDB查詢運算符的完整列表,請參閱Query and Projection Operators文檔。
復合查詢可以為集合的文檔中的多個字段指定條件。隱式地,邏輯AND連接將連接復合查詢的子句,以便查詢選擇集合中與所有條件匹配的文檔。
以下示例檢索inventory 集合中statusequals "A" 和 qty小于($lt)30的所有文檔:
db.inventory.find( { status: "A", qty: { $lt: 30 } } )
該操作對應于以下SQL語句:
SELECT * FROM inventory WHERE status = “A” AND qty < 30
見比較運算符其他MongoDB的比較操作。
使用$or運算符,可以指定將每個子句與邏輯OR連接相連接的復合查詢,以便查詢選擇集合中至少與一個條件匹配的文檔。
以下示例檢索集合中status等于"A" 或 qty小于($lt)30的所有文檔:
db.inventory.find( { status: "A", qty: { $lt: 30 } } )
該操作對應于以下SQL語句:
SELECT * FROM inventory WHERE status = “A” OR qty < 30
有關其他MongoDB比較運算符,請參見比較運算符。
在下面的例子中,對集合進行復合查詢,取得滿足以下條件的文檔:status等于"A" 并且 qty小于($lt)30 或item的value以p為開頭的文檔:
db.inventory.find( { status: "A", $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ] } )
該操作對應于以下SQL語句:
SELECT * FROM inventory WHERE status = “A” AND ( qty < 30 OR item LIKE “p%” )
MongoDB支持正則表達式$regex查詢以執行字符串模式匹配。
看完上述內容,你們掌握如何進行MongoDB查詢文檔的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。