MongoDB 集合“test”包含一条记录:
{ "_id" : ObjectId("56f53cded3095c203024a884"), status : 0 }
Run Code Online (Sandbox Code Playgroud)
我通过 Node.js (Mongoose 驱动程序)连接到 mongo。定义该集合的架构:
"Test" : {
status : { type : Number, default : 0 }
}
Run Code Online (Sandbox Code Playgroud)
字段“status”是一个二进制标志,只能存储 0 或 1 个数值。我想通过更新查询更改此标志:
test.update( { 'status' : 0 }, { $bit : { 'status' : { xor : NumberInt(1) } } }, function( err, result ) {
if( err ) {
console.log( 'err' );
}
});
Run Code Online (Sandbox Code Playgroud)
Mongoose 未找到NumberInt()函数:
ReferenceError: NumberInt is not defined
Run Code Online (Sandbox Code Playgroud)
当我输入没有功能的简单数字“1”时NumberInt(),我没有任何更改或错误。
在 MongoDB shell 中,查询运行得很好。我如何在 Mongoose 驱动程序中使用NumberInt()?它还有别的名字吗?
在 GitHub 上的 Mongoose 存储库中进行了一些关于支持NumberInt此功能请求的讨论。然后通过此处mongoose-int32提供的 NPM 包将其添加为插件。您可以通过安装并使用如下所示的模块来获取与 MongoDB 相同的行为。NumberInt
var NumberInt = require('mongoose-int32');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5376 次 |
| 最近记录: |