MongoShell 3.6 +
У меня есть документ с несколькими вложенными документами, некоторые имена для этих документов не фиксированные, а динамические, поэтому следующий шаблон запроса "field1.field2.field3" может работать не для всех документов, поскольку я не знаю точного имени для field2: «field1.?.field3», поскольку они различны.
Я пробовал разные подходы безуспешно. Цель состоит в том, чтобы извлечь _id для всех вложенных документов, имеющих endDate старше 3 месяцев.
Любая помощь в этом очень ценится.
Внутри json, который я разместил ниже, я добавил '?' указывая на то, что дочерний документ заранее неизвестен.
Примечание : если я использую, например, accountBalances.Iusacell_Prepaid_UC.quotas.Iusacell_onetime_Quota.credits._PlIUsNnJEee6aJBYcxiwDQ.endDate *, к сожалению, это работает только для 1016 ** 1016, но, к сожалению, работает только для 1016 ** 1016, но, к сожалению, работает только для 1016 ** 1016, но, к сожалению, только для 1016 ** 1016 типы документов, и у меня буквально есть миллионы, которые я не знаю заранее.
{
"_id" : "xxxxxxxxxxxx",
"accountBalances" : {
"Iusacell_Prepaid_UC" : { ?
"quotas" : {
"Iusacell_onetime_Quota" : { ?
"credits" : {
"_PlIUsNnJEee6aJBYcxiwDQ" : ? {
"startDate" : ISODate("2017-12-05T14:33:21.175+0000"),
"debits" : {
"consolidated" : {
"creationDate" : ISODate("2017-12-05T14:46:25.123+0000"),
"debitAmount" : "330190897.00000000000000000",
"debitId" : "consolidated"
}
},
"endDate" : ISODate("2017-12-26T14:35:17.000+0000"),
"creditId" : "_PlIUsNnJEee6aJBYcxiwDQ",
"creditAmount" : "1073741824.00000000000000000",
"started" : true