我如何得到一个值数组,而不是在mongo /节点/mongoose的JSON数组?

我试图在mongo查询中模拟一个连接,所以我把我的第一个查询的结果,然后将其作为一个$入filter传递给我的第二个查询。

不幸的是,我的第一个查询的结果返回一个像这样的json对象的数组

[ { _id: 4ecd830da046050100000025 }, { _id: 4ecd84a0a046050100000085 } ] 

$ infilter不会返回任何东西,因为它们是json对象而不是数组数组。 我可以手动转换该数组,但有一个内置的方法或函数,我可以使用? 另外,是否有一种方法,我可以让mongo返回值数组呢? 目前我正在调用find查询

 Likes.find {liker:"Me"}, {_id:1}, {safe:true} 

这是我的第二个查询

 Post.find {_id:{$in:likes}} 

我希望有类似的东西

 Post.find {_id:{$in:likes._id}} 

尽pipe在$ in子句中没有解决您的问题的一般方法,您可以使用独立操作的结果:

 > db.test.save({a:1}) > db.test.save({a:2}) > db.test.save({a:3}) > db.test.save({a:4}) > ids = db.test.distinct("_id", {a:{$gt:2}}) [ ObjectId("4ece45c2c951f11718678574"), ObjectId("4ece45c4c951f11718678575") ] > db.test.find({_id:{$in:ids}}) { "_id" : ObjectId("4ece45c2c951f11718678574"), "a" : 3 } { "_id" : ObjectId("4ece45c4c951f11718678575"), "a" : 4 } 

希望有所帮助!