JVG*_*JVG 37 arrays mongodb mongodb-query
我知道$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",
]
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似于的查询:
db.products.find({"imgs[0]": "http://foo.jpg"})
Run Code Online (Sandbox Code Playgroud)
这将/应该返回ObjectId("0")
但不是ObjectId("1")
,因为它只是检查数组中的第一个图像.
怎么能实现这一目标?我知道我可以创建一个单独的字段,其中包含一个字符串,firstImg
但这并不是我在此之后的真实情况.
pou*_*def 72
我相信你想要的imgs.0
.例如,根据您的示例文档,您想说:db.products.find({"imgs.0": "http://foo.jpg"})
请注意,引用数组索引仅适用于第一级数组.Mongo不支持更深入地搜索数组索引.
Lix*_*Lix 11
您可以对数组索引使用点表示法:
db.products.find({"imgs.0": "http://foo.jpg"})
Run Code Online (Sandbox Code Playgroud)
以下是点符号相关文档的摘录.
MongoDB使用点表示法来访问数组的元素并访问子文档的字段.
要通过从零开始的索引位置访问数组的元素,请将数组名称与点(.)和从零开始的索引位置连接起来,并用引号括起来:
'<array>.<index>'
此外,这里还有相关阵列文档的链接.
归档时间: |
|
查看次数: |
48525 次 |
最近记录: |