Mongodb find方法始终返回文档的所有元素

时间:2018-08-04 18:30:45

标签: javascript node.js mongodb

我有student个收藏夹

{
  _id: 1,
  name: "Student",
  tasks: [{ month: 1, year: 2018 }]
}

我需要一个仅返回任务数组的查询:

db.collection('students').find(
  {
    'tasks.month': 1,
    'tasks.year': 2018
  },
  {
    'tasks.$' : 1
  }
).toArray((err, res) => {
  console.log(res)
})

这将返回具有所有字段的所有文档,包括name等...

1 个答案:

答案 0 :(得分:0)

find将返回cursor。基于cursor documentation,如果您想project,则只需执行以下操作:

.project({'tasks' : 1})

在您的.toArray之前...所以您最终得到:

var result = db.collection('students').find({
  'tasks.month': 1,
  'tasks.year': 2018
}).project({
  'tasks': 1
}).toArray((err, res) => {
  console.log(res)
})