我如何得到一个值数组,而不是在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 }
希望有所帮助!