mongoose update $ in出错了

时间:2014-02-18 16:33:56

标签: node.js mongodb mongoose

我有以下代码行

exports.add = function(req, res){
    res.app.db.models.User.update(
        { username: {$in: ["user1","user2"]} },
        { fullname: "Test" },
        { multi: true },
        function(err, numberAffected, raw){
            if (err) res.send(err);
            console.log('The number of updated users was %d', numberAffected);
            res.send();
        });
};

运行后我从日志中收到了这条消息:

The number of updated users was NaN

如果我从数组中删除“user2”,它可以正常工作

The number of updated users was 1

所以$ in中有什么问题?我的猫鼬版本是3.8.2。请帮帮我。

- - - - - - - - 修订

这是我的用户架构

var userSchema = new Schema({
  username: { type: String, required: true, index: { unique: true } },
  password: { type: String, required: false },
  fullname: { type: String, required: true },
  facebook_id: { type: String, required: false },
  avatar: String,
  created_at: { type: Date, default: Date.now },
  groups: [{ type: Schema.Types.ObjectId, ref: 'groups' }],
  tasks: [{ type: Schema.Types.ObjectId, ref: 'tasks' }]
});

我刚刚发现了一个奇怪的新事物:在我更新单个文档用户名后:'user1' - > fullname:'Test',然后使用相同的全名'Test'更新user2,我得到了上面的错误NaN。但是如果使用不同的全名,例如'Test2',则没有错误,并且user2已成功更新。这让我很困惑。

0 个答案:

没有答案