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":{输入整个文档内容的}}});
即可查询

上面代码就可以解决内嵌文档全匹配的问题

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