中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb CRUD操作 -Select

發布時間:2020-07-29 04:54:04 來源:網絡 閱讀:617 作者:會說話的魚 欄目:MongoDB數據庫

vps2" >https://docs.mongodb.com/manual/reference/method/db.collection.find/


查詢文檔

db.collection.find(query, projection)



方法:

db.collection.find()


Additional Methods

  • db.collection.findOne

  • In aggregation pipeline, the $match pipeline stage provides access to MongoDB queries.


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" }

]);


參考:

> db.inventory.find( {} ,{_id:0})

{ "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" }


操作必須以鍵值對的方式,必須用{}括起來,所以所有的查詢先用{}括起來

1、Select All Documents in a Collection

db.inventory.find( {} )=db.inventory.find()


2、Specify Equality Condition

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


SELECT * FROM inventory WHERE status = "D"


{ "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" }


3、Specify Conditions Using Query Operators

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


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

{ "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" }


4、Specify AND Conditions

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

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

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }


5、Specify OR Conditions

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

SELECT * FROM inventory WHERE status = "A" OR qty < 30

{ "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" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }


6、Specify AND as well as OR Conditions

db.inventory.find( {

    status: "A",

    $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]

} )

SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }
{ "item" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }



Additional Query Tutorials

1、Query on Embedded/Nested Documents 查詢嵌入/嵌套文檔(字段值是一個文檔)

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" }

])


> db.inventory.find( {} ,{_id:0})


{ "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" }


Match an Embedded/Nested Document

查詢size字段的值是{h:14,w:21,uom:"cm"}的所有文檔:在作為嵌入/嵌套文檔的字段上指定相等條件

{ "item" : "journal", "qty" : 25, "size" : { "h" : 14, "w" : 21, "uom" : "cm" }, "status" : "A" }


db.inventory.find({size:{w:21,h:14,uom:"cm"}}) 

注:文檔的精確匹配,包括順序。


db.inventory.find({size:{w:21,h:14,uom:“cm”}})// 與集合中的任何文檔不匹配



Query on Nested Field

Specify Equality Match on a Nested Field

查詢size字段中嵌套的字段uom的值等于“in”的所有文檔:

db.inventory.find( { "size.uom": "in" } )


{ "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" }



Specify Match using Query Operator

查詢size字段中嵌套的字段h的值小于15的所有文檔:

db.inventory.find( { "size.h": { $lt: 15 } } )


{ "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" : "postcard", "qty" : 45, "size" : { "h" : 10, "w" : 15.25, "uom" : "cm" }, "status" : "A" }



Specify AND Condition

查詢size字段中嵌套的字段h的值小于15,uom的值為“in”,status的值為“D”的所有文檔:

db.inventory.find( { "size.h": { $lt: 15 }, "size.uom": "in", status: "D" } )


{ "item" : "paper", "qty" : 100, "size" : { "h" : 8.5, "w" : 11, "uom" : "in" }, "status" : "D" }


2、Query an Array 查詢數組(字段值是一個數組)

db.inventory.insertMany([

  { item: "journal", qty: 25, tags: ["blank", "red"], dim_cm: [ 14, 21 ] },

  { item: "notebook", qty: 50, tags: ["red", "blank"], dim_cm: [ 14, 21 ] },

  { item: "paper", qty: 100, tags: ["red", "blank", "plain"], dim_cm: [ 14, 21 ] },

  { item: "planner", qty: 75, tags: ["blank", "red"], dim_cm: [ 22.85, 30 ] },

  { item: "postcard", qty: 45, tags: ["blue"], dim_cm: [ 10, 15.25 ] }

])


參考:

{ "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }
{ "item" : "postcard", "qty" : 45, "tags" : [ "blue" ], "dim_cm" : [ 10, 15.25 ] }



Match an Array

查詢數組字段tags中正好包含兩個元素“red和blank”,并且順序相同的所有文檔:

db.inventory.find( { tags: ["red", "blank"] } )

注:精確匹配,包括數組中元素的順序。


{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }


查詢數組字段tags中包含“red”和“blank”兩個元素的所有文檔,不考慮數組中的順序和其他元素:

db.inventory.find( { tags: { $all: ["red", "blank"] } } )

等同于

db.inventory.find({$and: [ { tags: "red" }, { tags: "blank" }]},{_id:0})


{ "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }





Query an Array for an Element

查詢數組字段tags中包含red元素的所有文檔:

db.inventory.find( { tags: "red" } )

{ "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }




查詢數組字段dim_cm中至少有一個元素的值大于25的所有文檔:

db.inventory.find( { dim_cm: { $gt: 25 } } )

{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }



Specify Multiple Conditions for Array Elements

Query an Array with Compound Filter Conditions on the Array Elements

查詢數組字段dim_cn中一個元素的值大于15且另一個元素的值小于20,或者單個元素滿足兩個條件的所有文檔

db.inventory.find( { dim_cm: { $gt: 15, $lt: 20 } } )


{ "item" : "journal", "qty" : 25, "tags" : [ "blank", "red" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "notebook", "qty" : 50, "tags" : [ "red", "blank" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }
{ "item" : "postcard", "qty" : 45, "tags" : [ "blue" ], "dim_cm" : [ 10, 15.25 ] }





Query for an Array Element that Meets Multiple Criteria 查詢符合多個標準的數組元素

查詢數組字段dim_cm中至少有一個元素的值大于22且小于30的所有文檔

db.inventory.find( { dim_cm: { $elemMatch: { $gt: 22, $lt: 30 } } } )

{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }



Query for an Element by the Array Index Position 通過數組索引位置查詢元素

查詢數組字段dim_cm中第二個元素的值大于25的所有文檔:

db.inventory.find( { "dim_cm.1": { $gt: 25 } } )

{ "item" : "planner", "qty" : 75, "tags" : [ "blank", "red" ], "dim_cm" : [ 22.85, 30 ] }



Query an Array by Array Length

查詢數組字段tags中具有三個元素的所有文檔:

db.inventory.find( { "tags": { $size: 3 } } )

{ "item" : "paper", "qty" : 100, "tags" : [ "red", "blank", "plain" ], "dim_cm" : [ 14, 21 ] }

3、Query an Array of Embedded Documents 查詢嵌入式文檔的數組(字段值包含數組,數組里面嵌套文檔)

db.inventory.insertMany( [

  { item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 } ] },

  { item: "notebook", instock: [ { warehouse: "C", qty: 5 } ] },

  { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 15 } ] },

  { item: "planner", instock: [ { warehouse: "A", qty: 40 }, { warehouse: "B", qty: 5 } ] },

  { item: "postcard", instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }

])

參考:

{ "item" : "journal", "instock" : [ { "warehouse" : "A", "qty" : 5 }, { "warehouse" : "C", "qty" : 15 } ] }
{ "item" : "notebook", "instock" : [ { "warehouse" : "C", "qty" : 5 } ] }
{ "item" : "paper", "instock" : [ { "warehouse" : "A", "qty" : 60 }, { "warehouse" : "B", "qty" : 15 } ] }
{ "item" : "planner", "instock" : [ { "warehouse" : "A", "qty" : 40 }, { "warehouse" : "B", "qty" : 5 } ] }
{ "item" : "postcard", "instock" : [ { "warehouse" : "B", "qty" : 15 }, { "warehouse" : "C", "qty" : 35 } ] }




Query for a Document Nested in an Array 查詢嵌套在數組中的文檔

查詢數組字段instock中的嵌入式文檔與指定文檔匹配的所有文檔:

db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )

{ "item" : "journal", "instock" : [ { "warehouse" : "A", "qty" : 5 }, { "warehouse" : "C", "qty" : 15 } ] }


注:精確匹配,包括字段的順序。


db.inventory.find( { "instock": { qty: 5, warehouse: "A" } } ) //與集合中的任何文檔不匹配。


Specify a Query Condition on a Field in an Array of Documents

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高安市| 本溪市| 宁河县| 陆川县| 高邑县| 建昌县| 富锦市| 望奎县| 迁安市| 金塔县| 城口县| 惠来县| 奉新县| 高雄县| 大冶市| 凤城市| 武宣县| 彩票| 潢川县| 鄂尔多斯市| 沙雅县| 梁山县| 永登县| 正阳县| 封开县| 玉门市| 博野县| 双鸭山市| 淮安市| 丹东市| 铁岭市| 葫芦岛市| 江西省| 灵寿县| 皋兰县| 白玉县| 孝昌县| 海门市| 通化县| 恭城| 邻水|