метод find не имеет свойства forEach - PullRequest
0 голосов
/ 05 июля 2018

Я использую mongoose в Node.js с Typescript.

Моя схема выглядит следующим образом:

Member = mongoose.model("Member", MemberSchema);
const MemberSchema = new mongoose.Schema({
  familyName: String,
  otherNames: String
}, { timestamps: true });

Я могу использовать метод find со встроенным обратным вызовом, но если я попробую следующее:

Member.find({"_id": req.body.item._id})
  .forEach((result,i) => {
     result.isDeleted = true;
     mongoose.Collection.save(result);
  }

Я получаю ошибку в forEach:

Свойство forEach не существует для типа DocumentQuery. Вы забыли использовать «await»?

Документация мангуста здесь , кажется, говорит, что есть метод forEach.

Как я могу использовать метод forEach?

1 Ответ

0 голосов
/ 05 июля 2018

Ответ зависит от используемого вами драйвера, Вот несколько примеров, которые вам помогут:

узел-MongoDB-родной

Member.find({"_id": req.body.item._id}).forEach(function(doc) {
  doc.isDeleted = true;
  mongoose.Collection.save(doc)
}, function(err) {
  // done or error
});

мангуст

Member.find({"_id": req.body.item._id}).stream()
  .on('data', function(doc){
    doc.isDeleted = true;
    mongoose.Collection.save(doc)
  })
  .on('error', function(err){
    // handle error
  })
  .on('end', function(){
    // final callback
  });
...