Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.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
MongoDB:如何在嵌套数组中查找特定值,如果找到,则仅显示该数组而不是全部?_Mongodb_Mongodb Query - Fatal编程技术网

MongoDB:如何在嵌套数组中查找特定值,如果找到,则仅显示该数组而不是全部?

MongoDB:如何在嵌套数组中查找特定值,如果找到,则仅显示该数组而不是全部?,mongodb,mongodb-query,Mongodb,Mongodb Query,我试图在客户id数组中查找id“D0182”如果找到,则仅显示客户id文档,但显示的是整个文档 这是我的问题- db.getCollection('news').find({“newsources.client_id:“A0003”,“date:“2021-01-22”},{“_id:”0,“newsSources.title:”1,“newsSources.client_id:”1})您可以使用聚合从数组中筛选出对象 db.collection.aggregate([ { &quo

我试图在客户id数组中查找id“D0182”如果找到,则仅显示客户id文档,但显示的是整个文档

这是我的问题-


db.getCollection('news').find({“newsources.client_id:“A0003”,“date:“2021-01-22”},{“_id:”0,“newsSources.title:”1,“newsSources.client_id:”1})

您可以使用聚合从数组中筛选出对象

db.collection.aggregate([
  {
    "$addFields": {
      "newsSources": {
        $filter: {
          input: "$newsSources",
          cond: {
            $in: [
              "D0108",
              "$$this.clientId"
            ]
          }
        }
      }
    }
  }
])

正在工作

您可以将文档作为代码片段而不是图像发布吗!而且我知道
客户机Id
新闻源
中。您是否只需要筛选数组中的对象,还是需要获取集合中具有
客户端id
的所有文档?正如您在客户端id上方的图像中所看到的那样:[“W0086”]也会显示出来,我试图仅显示具有值[“D0182”]的[client\u id]数组,如果不是,那么它就不应该隐藏displayed@varman我只使用MongoDB shell。