Saya dapat secara manual menentukan jenis BSON di Driver NodeJS mongodb? Saya mendapatkan kesalahan jika saya menggunakan "$ numberLong"

Aug 18 2020

Ini adalah Bagaimana saya membingkai objek dokumen sebelum memasukkannya ke koleksi

function newTupple(name, email){
return {
  email:email,
  name:name,
  account_status:{
    email_verified:{                  //I want this in Int64
        "$numberLong": `${Date.now()}`
    },
    activated:false
  }
}
}

Lalu saya sisipkan seperti

const new_doc = newTupple("Ninja", "[email protected]")
collection.insertOne(new_doc, (err, result)=>{
if(err){
    //err: returns " key $numberLong must not start with '$' "
}
}

Saya menggunakan paket npm [email protected]

Apa yang saya lakukan salah? Atau apakah tipe data khusus tidak tersedia untuk JS?

......................................

Memperbarui

......................................

Log Kesalahan Penuh

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)

Jawaban

1 D.SM Aug 18 2020 at 17:24

Anda menggunakan sintaks json diperpanjang yang tidak sesuai untuk membuat grafik objek dalam aplikasi. Sebaliknya Anda harus membangun objek dengan tipe yang sesuai.

Misalnya lihat di sini untuk contoh Panjang.

const BSON = require('bson');
const Long = BSON.Long;

const doc = { long: Long.fromNumber(100) };