MongoDB:如何在嵌套数组中查找特定值,如果找到,则仅显示该数组而不是全部?
我试图在客户id数组中查找id“D0182”如果找到,则仅显示客户id文档,但显示的是整个文档 这是我的问题-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
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。