Arrays 从mongo db获取的记录的数组推送

Arrays 从mongo db获取的记录的数组推送,arrays,node.js,mongodb,express,mean-stack,Arrays,Node.js,Mongodb,Express,Mean Stack,在MEAN堆栈中,我试图将从mongo db获得的记录存储在一个数组中,但无法将该记录存储在一个数组中 这是我的代码,我试图将从ProjectMage获得的记录推送到fulldetails[]数组,但失败了。建议我将mongo db记录存储到阵列的可能解决方案 var express = require("express"), router = express.Router(), project = require("../../models/project.js")

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

这是我的代码,我试图将从ProjectMage获得的记录推送到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;    
}
var express=require(“express”),
路由器=express.router(),
project=require(“../../models/project.js”),
ProjectMage=require(“../../models/projectMages.js”),
var详细信息=数据;
var fulldetails=[];
对于(变量i=0;i
我想你想要的是从你的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
    });
}
var fulldetails=[];
对于(变量i=0;i
您必须将
fullDetails
设置为它所属的文档,并在文档上使用
save()
将其保存到数据库中。如果是
project
,那么
find
project文档和类似
project.fullDetails=fullDetails
的东西,然后
project.save()
。你在哪里检查
fullDetails
数组,也就是说你的数组是空的?请分享剩下的代码。@Veeram,我想他不是这个意思。他只是想把数据放入一个数组,并在最后看到它。在返回所有find调用之前,可能正在检查
fullDetails
。@TalhaAwan您是对的。我误读了这篇文章@vimal kumar如何创建详细信息?可能需要验证您是否向find方法发送了正确的值。您能提供任何错误详细信息吗?我已经尝试过,但数据没有插入到fulldetails数组中。我已经发布了我尝试过的代码。在find查询之后,我发现您缺少toArray函数,如我的代码所示。这一点很重要,因为返回的数据是游标类型,而不是没有游标类型的数组。