mongodb中根據內嵌文檔中的條件查詢

在寫報用戶訂單報表的時候遇到了一個mongodb的查詢問題,上網上也找了下資料,在這裏記錄一下
根據訂單文檔中的內嵌文檔裏的數據進行查詢數據庫

{
"_id" : ObjectId("594ce45c5592f529700ec248"),
"holdInfo" : {
"presentIncomeRate" : null,
"availShare" : "10000.00",
"saleChnlId" : "BEST_WX",
"prodDueTime" : "30",
"userId" : "201706210001090382",
"prodIncomeRate" : "5.66",
"repayDate" : "20170730",
"YetPayIncome" : "0.00",
"createDate" : "2017-06-23 17:48:49",
"onTheWaySgAmt" : "0.00",
"calIncomeShare" : "0.00",
"prodCatId" : "02001",
"totalShare" : "10000.00",
"onTheWayShAmt" : "0.00",
"status" : "1",
"hStatus" : "00",
"vendorId" : null,
"noPayIncome" : "46.52",
"standBy4" : "0.00",
"totalIncome" : "0.00",
"standBy3" : null,
"standBy2" : null,
"standBy1" : "00",
"standBy5" : "0.00",
"fpHoldId" : "CC15cd45aa7561"
},
"prodCatId" : "02001",
"txnType" : "30",
"prodId" : "zdsjyz0622_03",
"orderTime" : "2017-06-23 17:50:20",
"normalIncome" : "46.52",
"orderStatus" : "00",
"isDelete" : "2",
"txnNum" : "10000",
"prodName" : "自動上架驗證62203期",

查詢方法db.user_prod_trade_records.find({"prodId":"zdsjyz0622_03","holdInfo.userId":"201706210001090382");
在根據文檔中單個數據查詢的時候,只要使用字段名.內嵌文檔的字段名:查詢條件即可

那麼問題來了,如果我需要查詢整個文檔怎麼辦呢? 需要使用 $elemMatch

db.user_prod_trade_records.
find({"holdInfo":{"$elemMatch":{輸入整個文檔內容的}}});
即可查詢

上面代碼就可以解決內嵌文檔全匹配的問題

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