【发布时间】:2021-02-14 19:55:39
【问题描述】:
例如,我有两个猫鼬模式,例如
UserSchema = new mongoose.Schema({
name: {type: String},
pet: {type: mongoose.Schema.Types.ObjectId, ref: 'Pet'}
})
Users = mongoose.model('User', UserSchema)
PetSchema = new mongoose.Schema({
name: {type: String}
})
Pets = mongoose.model('Pet', UserSchema)
我想做类似的事情
UPDATE Users SET PET=(SELECT _id FROM Pets WHERE name=petname) where name=username
可以通过以下两个步骤来完成。
- 从 Pets 集合中找到 name=petname 的 _id。
- 从用户集合中更新 name=username 的宠物。
由于在第 1 步和第 2 步之间,可以删除宠物,所以我想使用单个 mongoose 查询。如何使用单个 Query 对象实现此目的?
【问题讨论】:
-
mongodb 只是在文档级别真正原子。宠物需要单独收藏吗?它们可以嵌入为sub document 吗? 4.2+ 的副本集现在可以有transactions,但我认为这对这种情况没有帮助。
标签: javascript node.js mongodb mongoose