Mongoose ODM:未定义NumberInt

时间:2016-03-28 10:31:23

标签: node.js mongodb mongoose

MongoDB集合"测试"包含一条记录:

{ "_id" : ObjectId("56f53cded3095c203024a884"), status : 0 }

我通过Node.js(Mongoose驱动程序)连接到mongo。定义此集合的架构:

"Test" : {
    status : { type : Number, default : 0 }
}

现场"状态"是二进制标志,必须只存储0或1个数值。我想用更新查询更改此标志:

test.update( { 'status' : 0 }, { $bit : { 'status' : { xor : NumberInt(1) } } }, function( err, result ) {
    if( err ) {
        console.log( 'err' );
    }
});

找不到猫鼬NumberInt()功能:

ReferenceError: NumberInt is not defined

当我输入简单的数字" 1"没有函数NumberInt(),我没有任何更改或错误。

在MongoDB shell中,查询运行完美。我如何在Mongoose司机中使用NumberInt()?它有另一个名字吗?

2 个答案:

答案 0 :(得分:4)

关于在GitHub上的Mongoose存储库中this feature request上支持NumberInt的讨论。然后通过mongoose-int32 NPM包here将其添加为插件。您可以通过安装然后使用类似以下内容的模块来实现与MongoDB的NumberInt相同的行为。

var NumberInt = require('mongoose-int32');

答案 1 :(得分:0)

{ xor: 1-1 } quick hack 对我有用。