MongoDB數組或者對象數據查詢


一、查詢主鍵objectId

db.product.find({"_id",ObjectId("564e845ee4b0281c3f8fcf60")})

二、查詢數組或者對象內容

使用$elemMatch匹配內數組內的元素

db.product.find({"parameSet":{"$elemMatch":{"564c408fe4b005ef3b0c1a69":"KFFF"}}})

等價於

db.product.find({"parameSet.564c408fe4b005ef3b0c1a69":"KFFF"})

其他:

幫助信息請訪問

http://www.runoob.com/mongodb/mongodb-query.html

http://www.mongoing.com/


mongodb like查詢


假如需要查找的字符串爲"產品",則可以用db.tables.find({"name":/產品/}),
或者db.tables.find({"name":/^產品/}) ,
或者db.tables.find({"name":/產品.*/}),
或者db.tables.find({"name":/.產品.*/})


下面就分析下這幾種查詢的對應結果有什麼不同:
1)db.product.find({"extra_data.region":/.外套.*/})
共112條記錄:包含了【防水外套,防曬外套,防寒保暖外套。。。。】
【注:由結果可以看出所查字符前面必須有字符,相當於:db.product.find({"extra_data.region":/.外套./}),也相當於db.product.find({"extra_data.region":/.外套/})】
-----------------------------------------------------------------------------------------------------------
2)db.product.find({"extra_data.region":/^外套/})
共108條記錄:包含了【外套裝。。。。】
【注:由結果可以看出,此查詢必須以所查字符開始】
-----------------------------------------------------------------------------------------------------------
3)db.product.find({"extra_data.region":/外套.*/})
共220條記錄:記錄包含了【防水外套。防曬外套,防寒保暖外套,外套裝。。。。】
【注:由結果可以看出前面字符可以有也可以沒有,相當於:db.product.find({"extra_data.region":/外套/})】
-----------------------------------------------------------------------------------------------------------
最後再分析下記錄的結果,由上面三種查詢可以看出,前兩個查詢的結果和正好等於最後一種的查詢結果,這與註解完全符合。
---------------------------------------------------------------------------------------------------------------------------------


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章