Arrays 在Mongo中搜索对象数组以查找数组中包含的任何值
我正在尝试搜索Mongo,以查看数组中是否有任何字符串正在我的“images.src.large”中使用: 要搜索的字符串:Arrays 在Mongo中搜索对象数组以查找数组中包含的任何值,arrays,mongodb,Arrays,Mongodb,我正在尝试搜索Mongo,以查看数组中是否有任何字符串正在我的“images.src.large”中使用: 要搜索的字符串: ['/california/los-angeles/pool.jpg','/california/los-angeles/pizza.jpg'] 我的Mongo系列的样本: { "_id": someNumber, "name: "Name 1", "images": [ { "title": "Title
['/california/los-angeles/pool.jpg','/california/los-angeles/pizza.jpg']
我的Mongo系列的样本:
{
"_id": someNumber,
"name: "Name 1",
"images": [
{
"title": "Title 1",
"src": {
"small": "/california/los-angeles/pool-small.jpg",
"medium": "/california/los-angeles/pool-medium.jpg",
"large": "/california/los-angeles/pool.jpg"
}
},
{
"title": "Title 2",
"src": {
"small": "/california/los-angeles/oven-small.jpg",
"medium": "/california/los-angeles/oven-medium.jpg",
"large": "/california/los-angeles/oven.jpg"
}
}
],
},
{
"_id": someOtherNumber,
"name: "Name 2",
"images": [
{
"title": "Landscape",
"src": {
"small": "/alaska/badger/dog-small.jpg",
"medium": "/alaska/badger/dog-medium.jpg",
"large": "/alaska/badger/dog.jpg"
}
},
{
"title": "Food",
"src": {
"small": "/alaska/badger/pizza-small.jpg",
"medium": "/alaska/badger/pizza-medium.jpg",
"large": "/alaska/badger/pizza.jpg"
}
}
],
},
{
"_id": aDifferentNumber,
"name: "Bridge",
"images": [
{
"title": "Store",
"src": {
"small": "/hawaii/kilauea/pool-small.jpg",
"medium": "/hawaii/kilauea/pool-medium.jpg",
"large": "/hawaii/kilauea/pool.jpg"
}
},
{
"title": "Home",
"src": {
"small": "/hawaii/kilauea/tree-small.jpg",
"medium": "/hawaii/kilauea/tree-medium.jpg",
"large": "/hawaii/kilauea/tree.jpg"
}
}
],
},
基本上,我试图通过使用文档中描述的
$in
操作符搜索“images.src.large”的值来搜索我的收藏,查看是否正在使用图像。您可以查询字段中的任意值。因此,示例文档中的以下查询将得到以下结果
> db.images.find({ "images.src.large" :
{ "$in" : ["/california/los-angeles/pool.jpg",
"/california/los-angeles/pizza.jpg"]
}
}).pretty();
{
"_id" : 1,
"name" : "Name 1",
"images" : [
{
"title" : "Title 1",
"src" : {
"small" : "/california/los-angeles/pool-small.jpg",
"medium" : "/california/los-angeles/pool-medium.jpg",
"large" : "/california/los-angeles/pool.jpg"
}
},
{
"title" : "Title 2",
"src" : {
"small" : "/california/los-angeles/oven-small.jpg",
"medium" : "/california/los-angeles/oven-medium.jpg",
"large" : "/california/los-angeles/oven.jpg"
}
}
]
}
请注意,由于两个图像都在同一文档中使用,因此查询只返回一个文档。如果包含另一个文档中存在的值,则查询将返回两个文档。例如:
> db.images.count({ "images.src.large" :
{ "$in" : ["/california/los-angeles/pool.jpg",
"/alaska/badger/dog.jpg"]
}
});
2