Мне известен оператор $in, который, похоже, ищет наличие элемента в массиве, но я хочу найти совпадение только в том случае, если элемент находится в первой позиции в массиве.
Например:
{
"_id" : ObjectId("0"),
"imgs" : [
"http://foo.jpg",
"http://bar.jpg",
"http://moo.jpg",
]
},
{
"_id" : ObjectId("1"),
"imgs" : [
"http://bar.jpg",
"http://foo.jpg",
"http://moo.jpg",
]
}
Я ищу запрос, похожий на:
db.products.find({"imgs[0]": "http://foo.jpg"})
Это должно / должно вернуть ObjectId("0"), но не ObjectId("1"), так как оно проверяет только первое изображение в массиве.
Как этого добиться? Я знаю, что могу просто создать отдельное поле, содержащее одну строку для firstImg, но это не совсем то, что мне нужно.