我有一个包含以下字段的文档:
...
firebaseTokens: { type: Map, of: String },
androidIds: [{ type: String, maxlength: 128 }],
advertisingIds: [{ type: String, maxlength: 128 }],
firebaseInstallationIds: [{ type: String, maxlength: 128 }],
...
当我想在一次操作中同时使用$AddToSet
设置所有三个数组时,只设置最后一个array.
let user = {
_id: userId,
$set: { [`firebaseTokens.${deviceId}`]: token, },
$addToSet: { androidIds: deviceId },
$addToSet: { advertisingIds: advertisingId },
$addToSet: { firebaseInstallationIds: firebaseInstallationId }
}
let options = { new: true, setDefaultsOnInsert: true };
let userDoc = await UserModel.findByIdAndUpdate(user._id, user, options);
在上面的代码中,只设置了firebaseInstallationIds
.