mongodbのNodeJSドライバーでBSONタイプを手動で指定できますか?「$ numberLong」を使用するとエラーが発生します
Aug 18 2020
これは、コレクションに挿入する前にドキュメントのオブジェクトをフレーミングする方法です。
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", "[email protected]")
collection.insertOne(new_doc, (err, result)=>{
if(err){
//err: returns " key $numberLong must not start with '$' "
}
}
npmパッケージを使用しています [email protected]
私は何が間違っているのですか?または、カスタムデータ型は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)
回答
1 D.SM Aug 18 2020 at 17:24
アプリケーションでオブジェクトグラフを作成するには不適切な拡張json構文を使用しています。代わりに、適切なタイプのオブジェクトを作成する必要があります。
たとえば、長い例については、ここを参照してください。
const BSON = require('bson');
const Long = BSON.Long;
const doc = { long: Long.fromNumber(100) };