如何解决我可以在mongodb的NodeJS驱动程序中手动指定BSON类型吗?如果我使用“ $ numberLong”,则会收到错误消息
这是在将文档对象插入到集合中之前构图的方式
function newTupple(name,email){
return {
email:email,name:name,account_status:{
email_verified:{ //I want this in Int64
"$numberLong": `${Date.Now()}`
},activated:false
}
}
}
然后我将其插入
const new_doc = newTupple("Ninja","jojo@something.com")
collection.insertOne(new_doc,(err,result)=>{
if(err){
//err: returns " key $numberLong must not start with '$' "
}
}
我正在使用npm软件包mongodb@3.6.0
我在做什么错?还是自定义数据类型不适用于JS?
......................................
更新
......................................
完整错误日志
Error: key $numberLong must not start with '$'
at serializeInto (--------------\node_modules\bson\lib\bson\parser\serializer.js:915:19)
at serializeObject (--------------\node_modules\bson\lib\bson\parser\serializer.js:347:18)
at serializeInto (--------------\node_modules\bson\lib\bson\parser\serializer.js:941:17)
at serializeObject (--------------\node_modules\bson\lib\bson\parser\serializer.js:347:18)
at serializeInto (--------------\node_modules\bson\lib\bson\parser\serializer.js:941:17)
at serializeObject (--------------\node_modules\bson\lib\bson\parser\serializer.js:347:18)
at serializeInto (--------------\node_modules\bson\lib\bson\parser\serializer.js:727:17)
at serializeObject (--------------\node_modules\bson\lib\bson\parser\serializer.js:347:18)
at serializeInto (--------------\node_modules\bson\lib\bson\parser\serializer.js:941:17)
at BSON.serialize (--------------\node_modules\bson\lib\bson\bson.js:64:28)
解决方法
您使用的扩展json语法不适用于在应用程序中构造对象图。相反,您应该构造适当类型的对象。
例如,请参见here以获取详细的示例。
const BSON = require('bson');
const Long = BSON.Long;
const doc = { long: Long.fromNumber(100) };
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。