[英]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.