我有如下樣品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