从 MONGO DB 获得的记录的数组推送



MEAN堆栈中,我试图将从mongo db获得的记录存储在数组中,但我无法将记录存储在数组中。

这是我的代码,我试图将从projectimage获得的记录推送到fulldetails[]数组,但它失败了。向我建议将 mongo db 记录存储到数组的可能解决方案

    var express = require("express"),
     router = express.Router(),
     project = require("../../models/project.js"),
     projectimage = require("../../models/projectimages.js"),
             var details=data;
                 var fulldetails=[];
for (var i = 0; i < details.length; i++) {
    var prjct_id=details[i]._id;
    console.log('below'+i);
    fulldetails.push(details[i]);
    projectimage.findOne({projectId: prjct_id}, function(err, data){
       fulldetails.concat(data);
                   });
    console.log(fulldetails);
       return false;    
}

我想你想要的是从你的 Mongo 集合中获取一个数组,如果我错了,请纠正我。

我还假设 Mongo 查询成功运行,并正确返回记录。 然后你可以使用 toArray 函数在回调中获取数组。

// let's say Furniture is your collection
let furniture = Furniture.find({});
let details = [];
furniture.toArray((err, array) => {
  if (err) return; 
  details = array; // now details has your collections' documents
});

欲了解更多信息,请参阅此

让我知道这是否不是您要找的。

我认为您正在尝试获取完整细节的平面数组。如果我的假设是正确的,你可以在这里尝试我的解决方案:

var fulldetails=[];
for (var i = 0; i < details.length; i++) {
    var prjct_id=details[i]._id;
    projectimage.find({projectId: prjct_id}).toArray(function(err, data){ //convert data to array first
        console.log(data);
        fulldetails.concat(data); // concat data to fulldetails to get a flat array
    });
}

相关内容

  • 没有找到相关文章

最新更新