Puis-je spécifier manuellement le type BSON dans le pilote NodeJS de mongodb? J'obtiens une erreur si j'utilise "$ numberLong"
Voici comment j'encadre l'objet du document avant de l'insérer dans la collection
function newTupple(name, email){
return {
email:email,
name:name,
account_status:{
email_verified:{ //I want this in Int64
"$numberLong": `${Date.now()}`
},
activated:false
}
}
}
Ensuite, je l'insère comme
const new_doc = newTupple("Ninja", "[email protected]")
collection.insertOne(new_doc, (err, result)=>{
if(err){
//err: returns " key $numberLong must not start with '$' "
}
}
J'utilise le package npm [email protected]
Qu'est-ce que je fais mal? Ou le type de données personnalisé n'est-il pas disponible pour JS?
......................................
Mettre à jour
......................................
Journal des erreurs complet
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)
Réponses
1 D.SM
Vous utilisez une syntaxe json étendue qui n'est pas appropriée pour la construction de graphiques d'objets dans une application. Au lieu de cela, vous devez construire des objets de types appropriés.
Par exemple, voyez ici un exemple long.
const BSON = require('bson');
const Long = BSON.Long;
const doc = { long: Long.fromNumber(100) };