我想查询MongoDb,并将返回的记录保存到变量中,这是我在Controller中尝试的内容:
var projects= {};
Project.find({}).exec(function findProject(err, found){
projects = found;
console.log(found.length);
while (found.length)
console.log('Found Project with name ' + found.pop().name)
});
//返回Undefined
console.log(projects.length);
我做错了吗?
如何将.find()的结果传递给变量项目?
答案 0 :(得分:2)
你应该停止 pop() - 你的阵列。 您的对象正在传递 by reference ,而不是 by value 。因此,当您从一个中删除项目时,实际上会影响另一个项目。
修改强>
如果您仍有疑问,可以查看您的查询:
Project.find({}).exec(function findProject(err, found){
if (err) { // here
console.log(err);
} else if (found.length == 0){
console.log("Nothing was found");
} else {
console.log(found);
}
});
对象没有.length
属性,这就是你获得undefined
的原因。我假设您收到错误,这就是您的found
参数不是数组的原因。