Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Node.js 如何匹配mongoDB查找数组中的值_Node.js_Mongodb - Fatal编程技术网

Node.js 如何匹配mongoDB查找数组中的值

Node.js 如何匹配mongoDB查找数组中的值,node.js,mongodb,Node.js,Mongodb,这是结果数组,我希望“$match”stepQuoteTool=true { "quotes" : [ { "_id" : ObjectId("5e0f02dc5023ec1de34e45bf"), "firstName" : "Sagar", "stepQuoteTool" : true, "stepCarDetail" : true,

这是结果数组,我希望“$match”stepQuoteTool=true

{ 
    "quotes" : [
        {
            "_id" : ObjectId("5e0f02dc5023ec1de34e45bf"),               
            "firstName" : "Sagar", 
            "stepQuoteTool" : true, 
            "stepCarDetail" : true,            
        }
    ], 
    "_id" : ObjectId("5e0f02dc5023ec1de34e45be"), 
    "firstName" : "Sagar", 
    "createdAt" : ISODate("2020-01-03T09:01:16.748+0000"), 
    "device" : "Desktop", 
    "browser" : "Chrome", 
    "browserVersion" : "79.0.3945.88", 
    "os" : "Linux", 
    "screenSize" : "1920 X 383", 
}
下面是我的mongodb查询。有人能帮忙吗?我是mongodb的初学者

db.getCollection("tracks").aggregate([
{ $match: {'stepQuoteTool':true} },
{
                $lookup: {
                    from: 'quotes',
                    foreignField: 'track',
                    localField: '_id',
                    as: 'quotes'
                }
            },
            {
                $unwind: {
                    path: '$quotes',
                    preserveNullAndEmptyArrays: true
                }
            },
            {
                $group: {
                    _id: { _id: "$_id" },
                    firstName: { "$addToSet": "$firstName" },
                    quotes: { "$addToSet": "$quotes" },
                    createdAt: { "$addToSet": "$createdAt" },

                    device: { "$addToSet": "$device" },
                    browser: { "$addToSet": "$browser" },
                    browserVersion: { "$addToSet": "$browserVersion" },
                    os: { "$addToSet": "$os" },
                    screenSize: { "$addToSet": "$screenSize" },
                }
            }           
])
请给我可能的解决办法,
谢谢。

在您解开
引号
数组后,引号文档不应该是数组。这是你在问题中给出的正确的O/P吗。并在查找
{$match:{'quotes.stepQuoteTool':true}
之后移动匹配管道,它工作正常。谢谢@AmbianBeing成功了吗,在放松后移动比赛?成功了。请看一下我根据您的解决方案实现的屏幕截图。好的,很酷。如果它有效,你可以把它作为一个答案发布并接受。这个问题的未来读者可能会从中受益。我试过了,但得到的是空数组引号。请查看此屏幕截图:
db.getCollection("tracks").aggregate([
    {
        $lookup: {
            from: 'quotes',
            foreignField: 'track',
            localField: '_id',
            as: 'quotes'
        }
    }, {
        $project: {
            quotes: {
                $filter: {
                    input: "$quotes",
                    as: "data",
                    cond: {
                        $eq: ["$$data.stepQuoteTool", true]
                    }
                }
            }
        }
    }

])