Express / MongoDb通过ID查找所有对象并将其保存到数组中

时间:2018-10-21 21:46:22

标签: node.js mongodb express mongoose

我的monongodb模式如下:

let statSchema = new mongoose.Schema({
        title: String,
        statId: String,
        stats: {
            likeCount: Number,
            commentCount: Number
        }
    });

let MyStat = mongoose.model("MyStat", statSchema);

我正在寻找一种方法,可以从数据库中获取所有statId元素并将它们放在数组中。

稍后,我想使用request(npm请求)遍历该数组,该数组将使用statId并从API请求JSON,该JSON将更新所有stats(likeCount和commentCount)每个对应的statId

如果我在下面使用此代码:

MyStat.find({}, function(err, foundStats){
    if (err) throw err;
    console.log(foundStats);
  });

它将记录我数据库中的所有元素,但我不知道如何仅访问'statId'。

我尝试使用console.log(foundStats.linkId);,但返回undefined

2 个答案:

答案 0 :(得分:1)

foundStats是一个需要在其中循环的数组。

foundStats.forEach((element) => {
    console.log(element.statId);
});

如果要返回statId,请仅按以下方式使用它:

 MyStat.find({}, 'statId' , function(err, foundStats){
    if (err) throw err;
    console.log(foundStats);
  });

请参阅文档here

答案 1 :(得分:0)

您的statId存储为“ _id”。因此,如果您未明确更改或设置ID字段,则将在“ _id”中找到对象ID字段。

在这种情况下,您可以使用

MyStat.find({}, '_id', function(err, foundStats){
    if (err) throw err;
    console.log(foundStats);
});

在“ foundStats”中,您会找到所有统计信息的ID。

有关更多信息,请检查enter image description heremongoose