首页 文章

Mongoose ODM:未定义NumberInt

提问于
浏览
4

MongoDB集合“test”包含一条记录:

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

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

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

字段“status”是二进制标志,必须只存储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() ?它有另一个名字吗?

1 回答

  • 4

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

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

相关问题