在另一个查询中使用一个查询的结果:nodejs和mongodb

时间:2018-09-11 15:09:08

标签: node.js mongodb express

我试图计算集合中文档的数量,然后将结果用于使用节点js的另一个插入查询中。

    var number;
    db.collection("collection").countDocuments({}, function(error, numOfDocs){
            if(error) throw error;
            else{
                console.log(numOfDocs);
                number = numOfDocs;
            }
    }); 


    var myobj = { num: "Number_"+number };
    db.collection("another_collection").insertOne(myobj, function(err, res) 
    {
            if (err) throw err;
            console.log("1 document inserted");         
    });

集合中插入的值为{“ num”:“ Number_undefined”}

如何将第一个查询的结果用于另一个?

1 个答案:

答案 0 :(得分:1)

这是因为您没有给Number赋值。此外,count()函数是一个异步函数(我为此写了一个答案here)。试试这个:

db.collection('collection')
  .countDocuments({}, function(error, numOfDocs){
    if(error) throw error;
    else {
        var myobj = { num: 'Number_' + numOfDocs };
        db.collection('another_collection').insertOne(myobj, function(err, res) {
               if (err) throw err;
               console.log('1 document inserted');         
        });
    }
});