当我运行db.abhishek.em.find({})
时,我有
{ "_id" : ObjectId("5ac62d35b075e574b3e7eeaa"), "name" : "first", "employed" : true }
{ "_id" : ObjectId("5ac62d3fb075e574b3e7eeab"), "name" : "second", "employed" : true }
{ "_id" : ObjectId("5ac62d4eb075e574b3e7eeac"), "name" : "third", "employed" : false }
我想通过添加或链接一些东西来查找函数,将结果减少为一个简单的对象 ID 数组,如下所示 db.a.b.find({used:true}).somefunction() 可以返回以下数组 我想在更大的查询中使用 $in 嵌套的命令来实现某种关系查询
[
ObjectId("5ac62d35b075e574b3e7eeaa"),
ObjectId("5ac62d3fb075e574b3e7eeab")
]
-----------------编辑------------------------------------
举个例子,我想通过运行来雇用员工
db.abhishek.another.find({id:{$in:db.abhishek.em.find({employed:true},{_id:1}).toArray()}})
或类似的命令不起作用
db.a.another 集合是
{ "_id" : ObjectId("5ac63de1b075e574b3e7eead"), "id" : ObjectId("5ac62d35b075e574b3e7eeaa"), "name" : "Lets say person 1" }
{ "_id" : ObjectId("5ac63df7b075e574b3e7eeae"), "id" : ObjectId("5ac62d3fb075e574b3e7eeab"), "name" : "Lets say person 2" }
{ "_id" : ObjectId("5ac63e06b075e574b3e7eeaf"), "id" : ObjectId("5ac62d4eb075e574b3e7eeac"), "name" : "Lets say person 3" }
-----------------编辑------------------------------------ 已解决,请参阅下面的回答
最佳答案
使用 MongoDB 仅提供模型中的那些字段。在 MongoDB 术语中,这称为投影。有一个 MongoDB 方法 .project()
,您可以将其链接到您的查询,如下所示:
db.abhishek.em.find({}).project({});
应该可以做到。如果您想显式排除字段,您可以:
db.abhishek.em.find({}).project({name:0, employed:0});
最后,要以数组形式获取输出,请执行以下操作:
db.abhishek.em.find({}).project({name:0, employed:0}).toArray();
引用这里:
https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/
关于javascript - 将 mongo db 查询减少为纯数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49675349/