我有如下样品JSON。蒙戈DB查询上列表<地图<字符串,地图<字符串,字符串>>>
{
"subscriber": {
"id": "123",
"custom_field1": "0",
"custom_field2": "0"
},
"subscriptions": [{
"12": {
"subs_id": "111",
"state": "5",
}
}, {
"13": {
"subs_id": "222",
"state": "8",
}, {
"14": {
"subs_id": "111",
"state": "8",
}
}]
}
我能够在蒙戈DB查询像
db.testTable.find({ “subscriber.id”: “123”});
而且我能够使用上述查询得到结果。
现在我想阵列包括“subs_id”过滤数据上订阅=“111”。
我试图像下面
db.testTable.find({ “subscriptions.subs_id”: “111”});
这是不给我结果。有人可以建议我如何做到这一点。
注:据我了解,它在列表<地图<字符串,地图<字符串,字符串>>>格式,我查询地图对象的值部分。但无法得到任何线索如何获取结果。
你应该尝试通过改变它列出嵌入文档的固定订阅。像这样'{ “subs_key”: “12”, “subs_id”: “111”, “状态”: “5”, }',你可以找到使用'db.testTable.find认购({” subscriber.id“:”123“,”subscriptions.subs_id“:”111“},{”subscriptions。$“:1);' – Veeram
同意sagar的说法。如果mongo会有通配符字段名称搜索,那么会有一个不同的故事,但现在您的文档可能需要调整。为什么要用数字标记文档?有原因吗? –
感谢您的意见。但是我无法改变输入数据格式,因为它来自客户端。只需要以给定的格式过滤数据。没有数据调整的任何建议appriciated ..! – Manindar