提前谢谢你,我真的坚持这个!
我在数据库中有一个User对象,如:
{
"_id": {
"$oid": "5a83470e722c1e00142e2216"
},
"first_name": "Test",
"last_name": "User",
"password": "$2a$10$FdsPkcjeLOpwfCRCHOSg6eqVDrDlbpi330tyG/Z.XPl3dKzX5K3s.",
"email": "test.com",
"role": 3
}
所以我正在调用一个应该更新对象的函数,就像用户刚编辑了他们的个人资料一样。 这是我的要求的主体:
{
"userID": "5a83470e722c1e00142e2216",
"employee": {
"first_name": "TestNEW",
"last_name": "UserNEW",
"password": "$2a$10$FdsPkcjeLOpwfCRCHOSg6eqVDrDlbpi330tyG/Z.XPl3dKzX5K3s.",
"email": "NEWUSER.com",
"role": 3
}
}
当我更新对象时,我想$ set或$ update整个用户对象,除了_id。所以,我使用这个:
User.findOneAndUpdate({ _id: new ObjectID(req.body.userID)},
{ $set: { ...req.body.employee } }, function(err, user)...etc etc
但那当然不起作用!所以我想知道我如何设置或$更新(不确定哪个)Object上的所有属性,除了它的_id,而不使用像
{ $set: { first_name: req.body.employee.firstName, last_name: req.body.employee.lastName, ...etc etc etc } }
这样的暴力
我知道这种方式有效,但我想以更冷的方式做到这一点,任何人都可以帮忙吗?谢谢!