我的应用程序中有以下架构
var UserSchema = mongoose.Schema({
email: {type: String, index: {unique: true, sparse: true}},
password: String,
createdOn: {type: Date, default:Date.now },
purchaseDate:Date,
expiryDate:Date,
purchaseID: {type: String, index: {unique: true, sparse: true}},
isEnabled: {type: Boolean,default: true},
devices:[{
type:mongoose.Schema.Types.ObjectId,
ref: 'Device'
}]
});
var DeviceSchema = mongoose.Schema({
owner : { type:mongoose.Schema.Types.ObjectId, ref: 'User' },
uuid:String,
token: String,
createdOn: {type: Date, default:Date.now },
lastSeen: Date,
isEnabled: {type: Boolean, default:true }
});
假设我有以下用户
用户1
{
"_id": ObjectId("56ec014111cb350404e30005"),
"purchaseDate": new Date("2015-10-17T17:01:26+0300"),
"purchaseID": "570000118683786",
"devices": [
ObjectId("56ec016911cb350404e30006")
],
"isEnabled": true,
"createdOn": new Date(1458307393521),
"__v": 1
}
用户2
{
"_id": ObjectId("57ec014111cb350404e30005"),
"devices": [
ObjectId("57ec016911cb350404e30006")
],
"isEnabled": true,
"createdOn": new Date(1458507393521),
"__v": 1
}
将用户 2 的设备数组合并到用户 1 并完全摆脱用户 2 的正确方法是什么?
最佳答案
您可以获取 User1 的设备并更新 User2(假设 User2 已获取):
UserModel.findById(user1Id)
.then(function (user1) {
// addToSet will ensure no duplicates in user2.devices
user2.devices.addToSet(user1.devices);
});
关于node.js - 在 Mongoose 中合并两个文档的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36246456/