【发布时间】:2018-05-10 16:46:59
【问题描述】:
我正在尝试将一个新元素推送到一个数组中,我在基于 express/nodejs 的 api 上使用了 mongoose。这是猫鼬的代码:
Serie.updateOne({'seasons.episodes.videos._id': data._id}, {$push: {'seasons.episodes.videos.$.reports': data.details}},
function(err) {
if (err) {
res.status(500).send()
console.log(err)
}
else res.status(200).send()
})
至于我的系列机型,是这样的:
const serieSchema = new mongoose.Schema({
name: {type: String, unique:true, index: true, text: true},
customID: {type: Number, required: true, unique: true, index: true},
featured: {type: Boolean, default: false, index: true},
seasons: [{
number: Number,
episodes: [{number: Number, videos: [
{
_id: ObjectId,
provider: String,
reports: [{
title: {type: String, required: true},
description: String
}],
quality: {type: String, index: true, lowercase: true},
language: {type: String, index: true, lowercase: true},
}
]}]
}],
});
当我执行我的代码时,我得到 MongoDB 错误代码 16837,它说“不能使用部分(seasons of seasons.episodes.videos.0.reports)来遍历元素(我的元素在 json 上)”
我已经尝试了许多其他查询来解决这个问题,但都没有成功,我希望有人能解决这个问题。
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query mongoose-schema