У меня есть MongoDB
collection
, структура которого выглядит примерно так:
/* 1 */
{
"_id" : ObjectId("5c09a454dd42360001fd2515"),
"conversations" : {
"0" : {
"message" : "Message 1",
.
.
.
},
"1" : {
"message" : "Message 1"
.
.
.
},
"2" : {
"message" : "Message 5"
.
.
.
},
"3" : {
"message" : "Message 1"
.
.
.
},
"4" : {
"message" : "Message 2"
.
.
.
},
"5" : {
"message" : "Message 3"
},
"6" : {
"message" : "compliance"
},
"7" : {
"message" : "Google"
}
}
/* 2 */
{
"_id" : ObjectId("5c09a673c2a98f00012f4efb"),
"conversations" : {
"0" : {
"message" : "Message 11"
},
"1" : {
"message" : "Google",
},
"2" : {
"message" : "Message 7"
}
}
/* 3 */
{
"_id" : ObjectId("5c09f570173f7900015a82b2"),
"conversations" : {
"0" : {
"message" : "Message 4"
},
}
.
.
.
В приведенных выше примерах данных у меня есть набор документов внутри collection
, и внутри каждого документа естьмассив словарного поля с именем conversations
.В этом поле у меня есть список полей словаря (0
, 1
, 2
...).Я хочу отфильтровать все документы, где в каждом поле conversations
значение message
равно Message 4
.
Мне известен способ фильтрации по определенному полю в каждом документе * 1016.*, но я не знаю, как применить его к списку полей словаря, как в моем случае.Любая помощь?