为什么MongoDB $设置不更新文档?

时间:2013-01-12 23:51:40

标签: node.js mongodb

db.collection('users', function(err, users)
{
    if (!err)
    {
        users.update({company:cursor[i].name}, {$set:{active:false}}, function() {});
    }
});

cursor[i].name有一个字符串值,当我console.log()时它显示正常。

该文档未更新。我在MongoHQ中使用远程数据库并使用本机mongodb驱动程序运行Node.js服务器。如果我在连接到同一个数据库的同时在shell上运行查询,它可以正常工作。

编辑:我使用的是int而不是false,它运行正常。我可以将布尔值插入mongodb吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

使用1.2.9的驱动程序进行测试,它运行正常。

exports.shouldUpdateCorrectlyWithBoolean = function (test) {
  var db = new Db(MONGODB, new Server("127.0.0.1", 27017,
    {auto_reconnect: false, poolSize: 1}), {w: 1, native_parser: false});

  db.open(function (err, db) {
    db.collection('update_with_boolean').insert({company: 'a'}, function(err, result) {
      test.equal(null, err);

      db.collection('update_with_boolean').update({company: 'a'}, {$set: {active:false}}, function(err, result) {
        test.equal(null, err);
        test.equal(1, result);

        db.collection('update_with_boolean').findOne(function(err, item) {
          test.equal(null, err);
          test.equal(false, item.active);

          db.close();
          test.done();
        });
      });
    })
  });
}