【发布时间】:2021-01-21 04:58:55
【问题描述】:
我有以下在 mongoDB CLI 中有效的查询:
db.organisations.updateOne({ _id: ObjectId("5f687da23a4dc9071baefd6d")}, {$pull: {courseIds:
ObjectId("5f687b863a4dc9071baefd6c"), "groups.$[].courseIds":
ObjectId("5f687b863a4dc9071baefd6c") }})
以下查询是我认为与猫鼬等效的查询:
await Organisation.updateOne({_id: "5f687da23a4dc9071baefd6d"},
{$pull: {courseIds: "5f687b863a4dc9071baefd6c", "groups.$[].courseIds":
"5f687b863a4dc9071baefd6c"}})
使用 mongoose 调试,我可以看到 mongoose 转换为的以下查询正在删除数组中所有文档的拉取操作的整个后半部分。这是为什么呢?
organisations.updateOne({ _id: ObjectId("5f687da23a4dc9071baefd6d") }, { '$pull': {
courseIds: ObjectId("5f687b863a4dc9071baefd6c") } }, {})
【问题讨论】: