Express / MongoDb находит все объекты по идентификатору и сохраняет их в массив - PullRequest
0 голосов
/ 22 октября 2018

Моя схема 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 и запросит JSON из API, который обновит все stats (likeCount и commentCount) для каждого соответствующегоstatId.

Если я воспользуюсь приведенным ниже кодом:

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

, он будет регистрировать все элементы в моей базе данных, но я не знаю, как получить доступ только к statId.

Я пытался использовать console.log(foundStats.linkId);, но он возвращает undefined.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Ваш statId хранится как _id.Поэтому, если вы не измените явно или не установите поле id, поле идентификатора объекта будет найдено в '_id'.

В этом случае вы можете использовать

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

В 'foundStats''вы найдете все идентификаторы статистики.

Для более подробной информации проверьте мангуст , mongoDB

0 голосов
/ 22 октября 2018

foundStats - это массив, который вам нужно зациклить в них.

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

, если вы хотите вернуть statId, используйте его только так:

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

см. Документы здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...