Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Mongo中搜索对象数组以查找数组中包含的任何值_Arrays_Mongodb - Fatal编程技术网

Arrays 在Mongo中搜索对象数组以查找数组中包含的任何值

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

我正在尝试搜索Mongo,以查看数组中是否有任何字符串正在我的“images.src.large”中使用:

要搜索的字符串:

['/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