[英]Mongoose: moving find() results to an array in the file
我创建了一个包含要导出的猫鼬模型(用户)的模块。 目前,它仅包含属性名称和年龄。
var mongoose = require('mongoose'); var db = mongoose.createConnection('localhost', 'moviemeter'); var schema = mongoose.Schema({name:String, age: Number}); var User = db.model('user', schema); module.exports = User;
在这里,我想访问此模型并找到其中的所有对象。 然后,我希望能够用数据库中的所有用户填充我的userArr变量,但是即使第一个console.log返回此对象的名称,也不会将其推入数组。 这是什么原因,我可以通过什么方法解决此问题?
// user module var User = require('./modelModules/memberModel'); var userArr = []; var users = User.find({}, function (err, users) { console.log(users[0].name) users.forEach(function(user) { userArr.push = user; }); }); console.log(userArr[0].name)
阵列推送的用法似乎有误,您应按以下方式使用它:
userArr.push(user);
这是因为您使用的是forEach,这是asynchon。 而且您的推送必须是一种功能
userArr.push(yourUser)
您可以尝试这样的“ for”吗?
// user module
var User = require('./modelModules/memberModel');
var userArr = [];
User.find({}, function (err, users) {
console.log(users[0].name)
users.forEach(function(user) {
for (var i = 0; i < users.length; i++) {
userArr.push(user);
}
console.log(userArr[0].name);
});
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.