Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongodb find方法始终返回文档的所有元素_Javascript_Node.js_Mongodb - Fatal编程技术网

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

Javascript Mongodb find方法始终返回文档的所有元素,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有studentcollection { _id: 1, name: "Student", tasks: [{ month: 1, year: 2018 }] } 我需要一个只返回任务数组的查询: db.collection('students').find( { 'tasks.month': 1, 'tasks.year': 2018 }, { 'tasks.$' : 1 } ).toArray((err, res) => {

我有
student
collection

{
  _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)
})

这将返回包含所有字段的所有文档,包括
名称
等等。

查找
将返回一个
光标
。基于
光标
如果您想
投影
,您只需执行以下操作:

.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)
})

db.collection('students')。查找({'tasks.month':1,'tasks.year':2018},{'tasks':1})
试试这个谢谢。。但是返回相同的结果???删除
.toArray()
并使用回调directly@anthony您应该在answer.TypeError:将循环结构转换为JSON中写下这一点