Mongoose节点js $匹配不在objectIds数组上工作?

时间:2017-09-20 10:16:53

标签: javascript node.js mongodb

您好我想使用节点js匹配mongoose中的objectIds数组,但是我在mongo shell中得到了结果,但是在使用我的代码实现时找不到任何结果。

这是我的收藏。

{
"_id" : ObjectId("59c21ef1a870b05034f2cec1"),
"__v" : 0,
"name" : "Force",
"createdAt" : ISODate("2017-09-20T07:55:29.816Z"),
"updatedAt" : ISODate("2017-09-20T07:55:29.817Z"),
"createdBy" : "599bfa0ee67842000493fefc",
"timestamp" : 1505894129819.0,
"isDeleted" : 0,
"isActive" : 1,
"updatedBy" : "",
"subSegments" : [ 
    ObjectId("59c2172ab500ce0a946aa93a"), 
    ObjectId("59c21734b500ce0a946aa93b")
],
"segments" : [ 
    ObjectId("59c2166db500ce0a946aa935"), 
    ObjectId("59c216a5b500ce0a946aa936")
],
"subject" : [ 
    ObjectId("59c2179fb500ce0a946aa93f")
]

}

这是我的疑问: -

 Topic.aggregate([
            {
                $unwind: "$subject"
            },
            {
                $match:{subject: new Mongoose.Schema.Types.ObjectId("59c2179fb500ce0a946aa93f")}
             }                
        ]

当我在mongo shell上运行此查询得到结果但在我的代码中此查询不返回任何结果或错误。

1 个答案:

答案 0 :(得分:0)

如果你使用的是猫鼬,你可以这样说,

Topic.find({
  subject: $in: ["59c2179fb500ce0a946aa93f"]
})