您的位置:首页 > 数据库 > Mongodb

mongodb中根据内嵌文档中的条件查询

2017-06-23 18:15 375 查看
在写报用户订单报表的时候遇到了一个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":{输入整个文档内容的}}});
即可查询


上面代码就可以解决内嵌文档全匹配的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb 数据库