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", "[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
응용 프로그램에서 개체 그래프를 구성하는 데 부적절한 확장 json 구문을 사용하고 있습니다. 대신 적절한 유형의 개체를 구성해야합니다.
예를 들어 긴 예는 여기 를 참조 하십시오 .
const BSON = require('bson');
const Long = BSON.Long;
const doc = { long: Long.fromNumber(100) };