Я пытаюсь работать из этой части документации: https://docs.mongodb.com/manual/reference/operator/aggregation/indexOfArray/
и мой вариант использования практически идентичен, за исключением того, что вместо массива значений у меня есть массив объектов:
{ "_id" : 1, "items" : [
{x: "one", y: "two", z: "three"},
{x: "four", y: "five", z: "six"},
{etc...}
]}
В этом примере приведен следующий пример: db.inventory.aggregate([{$project: {index: {$indexOfArray: [ "$items", 2 ] }}}]
2
- это выражение поиска для поиска в выражении массива $items
.
Моя проблема в том, что я пытаюсь найти индекс объекта, где элемент y равен myVariableValue. Пробовал много разных комбинаций, изменяя синтаксис, но ничего не возвращал, кроме -1, что означает, что он не был найден.
db.collection.aggregate([
{$match: {_id: id}},
{$project: {index: {$indexOfArray: [ "$items", {y: myVariableValue} ] }}}
]);
Кажется, не работает и думал, что это определенно будет.
Какой правильный синтаксис поиска я ищу, чтобы вернуть правильное значение индекса? Спасибо!