Как найти документ, содержащий данный объект JSON?Запросить документы в MongoDB путем сопоставления объектов
Пример:
предположить, что в базе данных test
есть документ, как это:
{
"identification": {
"componentId": "3a4f6199-6141-4179-ac5f-f1bbcf627bb2",
"componentType": "PivotTable",
"dataDate": "2016-06-15T15:29:51.139+0200",
"dataType": "PTF",
"properties": {
"contextId": "0329fe70-92f0-4b60-b3c2-79377adb8f95",
"tags": ["tag1", "tag2"]
}
},
"viewData": {
"lineGroups": []
}
}
Теперь дается только identification
часть документа с частичным набором ключей со значением:
{
"componentType": "PivotTable",
"properties": {
"tags": ["tag1"]
}
}
Поскольку указанная идентификационная часть документа соответствует данному идентификатору, то этот документ должен быть возвращен.
Если я делаю db.test.find({identification: {/*the given identification segment*/}})
, mongodb будет сравнивать непосредственно идентификационную часть, проверяя точно каждую запись в документе. В этом случае этот документ не будет возвращен.
Есть ли способ в языке запросов mongodb, который позволяет мне делать это относительно прямым или простым способом? Или я должен разбирать записи в объекте идентификации рекурсивно, чтобы построить запрос?
Таким образом, мне еще нужно построить строку запроса, проанализировав записи в поддокументе. Не более простой способ? Поскольку, когда структура поддокумента становится сложной (содержащей другой поддокумент с разными типами значений), построение запроса становится не таким простым. – qingl97
да ..... это игра :-) – profesor79
@ qingl97 Если мой ответ помог вам, пожалуйста, примите его, см. Это: http://stackoverflow.com/help/accepted-answer – profesor79