如何使用Mongoose和Node扩展语法更新所有对象的属性

时间:2018-02-14 23:16:04

标签: javascript node.js mongodb mongoose mongoose-schema

提前谢谢你,我真的坚持这个!

我在数据库中有一个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 } }
这样的暴力 我知道这种方式有效,但我想以更冷的方式做到这一点,任何人都可以帮忙吗?谢谢!

0 个答案:

没有答案