Мангуст напротив заселит массив - PullRequest
0 голосов
/ 04 апреля 2019

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

ItemSchema:

const ItemSchema = mongoose.Schema({
  name: { type: String, required: true, min: 1 },
  created_at: { type: Date, default: Date.now }
},{ toJSON: { virtuals: true }});

ListSchema:

const ListSchema = mongoose.Schema({
  title: { type: String, required: true, max: 100 },
  user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
  description: { type: String, required: true },
  items: [{
      type: mongoose.Schema.Types.Mixed, ref: 'Item', quantity: 'String'
  }],
  completed: { type: Boolean, default: false },
  date: { type: Date, default: Date.now },
});

Документ:

"items": [
    {
       "_id": "5c6d74a98a3f532b4c1d2a23",
       "quantity": "7"
    }
],

Как я заполняю: Item.findById(id).populate('lists');, но он возвращает пустой массив.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Давно не пользовался MongoDB, но, похоже, у вас нет ключа «списки» в схеме элементов для заполнения в первую очередь. Возможно, вам следует добавить один или запросить списки, в которых есть этот элемент.

0 голосов
/ 04 апреля 2019

У меня есть изменения, пожалуйста, проверьте, и дайте мне, что list в заполнении

Item.findById (идентификатор) .populate ( 'количество')

ИЛИ вы можете использовать это

const product = await Item.findOne({_id: id}).populate('quantity');
console.log("populate result...",product.quantity)
...