Как мне вернуть записи из моей коллекции "greesthings", где у "вещей" нет указанной подстроки c?
{
"_id" : ObjectId("5d24e6e5e8b6b11536a8519b"),
"message" : "hello",
"meta" : {
"info" : "friendly score 923",
"things" : "cat bat dragon",
}
},
{
"_id" : ObjectId("5d24e6e5e8b6b11536a8519c"),
"message" : "hello",
"meta" : {
"info" : "confused score 622",
"things" : "cat monkey dragon",
}
}
Я пытаюсь запросить / отфильтровать все записи 'hello message' {$match:{ message: { $eq: 'hello' }}}
по подстроке в meta.things
И сравнивая подстроку Обезьяна до meta.things для фильтрации результатов
Когда я пытаюсь этот $ filter , он выдает ошибку "errmsg" : "input to $filter must be an array not object"
db.getCollection('greetsthings').aggregate(
[{$match:{ message: { $eq: 'hello' }}},
{$project: {
message: 1,
"meta": {
$filter: {$gte : [{$indexOfCP: ["$meta.things", "monkey"]},0]}
}
}
}
])
Как я могу вернуть только записи, в которых сообщение привет и обезьяна в строке meta.things
?