Mon goose найти вложенный документ в массиве и обновить его - PullRequest
0 голосов
/ 27 февраля 2020

Привет, ребята, у меня есть проблема, которую я не могу решить. Как я могу найти и обновить отдельный документ в массиве, если у меня нет _id или мне нужен _id? Если мне не нужен _id, как я могу найти вложенный документ в массиве с примером userId в этом случае и обновить поля данных.

const listSchema = new mongoose.Schema({
  userId: {
    type: String,
    require: true
  }, 
   data1: { type: String },
   data2: { type: String }
});

const testSchema = new mongoose.Schema({
orderId: {
    type: Number,
    require: true
  },
list: [listSchema]
});

module.exports = mongoose.model("Test", testSchema);

Я пробовал что-то подобное, но затем я получаю весь список "obj, и я не могу узнать, как получить" список "синглов" obj с UserId: 1, скажем,

try {
 await Test.findOne({ orderId: OrderId },"list");
} catch (err) {
...
}

1 Ответ

0 голосов
/ 28 февраля 2020

Попробуйте:

Test.findOne({ orderId: orderId, "list.userId": "1" })

Подробнее о том, как запросить массив поддокументов, см. Здесь: Ссылка

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