Мне известен оператор $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
, но это не совсем то, что я здесь.