簡體   English   中英

貓鼬:將find()結果移動到文件中的數組

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM