javascript - 将 mongo db 查询减少为纯数组

标签 javascript arrays mongodb mongodb-query aggregation-framework

当我运行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/

相关文章:

javascript - 并排获取两个 Slickgrid 表

javascript - 检测对自定义指令的关注

javascript - 在用户点击时启动合法的弹出窗口

php - 如何从两个数组创建关联数组?

mongodb - Mongoose - 更新模型的实例方法,这是好的做法吗?

javascript - 未找到 `.mongorc.js`,但有一个

mongodb - Mongorestore 在没有 --drop 的情况下更新记录(如果已经存在)

javascript - javascript中不同对象数组的一种排序函数

javascript - 如何将新对象中的字段值设置为等于数组中字段的最高值?

javascript - 用文本替换整数