Mongoose ODM:NumberInt没有定义

MongoDB集合“testing”包含一个logging:

{ "_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' ); } }); 

没有findMongoose NumberInt()函数:

 ReferenceError: NumberInt is not defined 

当我把简单的数字“1”没有函数NumberInt() ,我没有任何更改或错误。

在MongoDBshell查询工作完美。 我如何在Mongoose驱动程序中使用NumberInt() ? 有另一个名字吗?

关于在GitHub的Mongoose仓库中支持这个特性请求上的NumberInt有一些讨论。 然后通过这里提供的mongoose-int32 NPM软件包将其作为插件添加。 您可以通过安装然后要求模块使用类似下面的内容来实现与MongoDB的NumberInt相同的行为。

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