Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ความแตกต่างระหว่าง NumberLong(x) และ NumberLong("x") ใน MongoDB

พฤติกรรมที่แตกต่างกันของ NumberLong

NumberLong(x) จะปัดเศษค่าที่เกินขีดจำกัด ในขณะที่ NumberLong("x") จะรักษาค่าที่แม่นยำ

ตัวอย่างเปรียบเทียบ

สร้างคอลเลกชันและแทรกค่าตัวเลขขนาดใหญ่ในทั้งสองรูปแบบ:

> db.demo603.insert({"longValue" : NumberLong(988998985857575789)});
WriteResult({ "nInserted" : 1 })
> db.demo603.insert({"longValueInString" : NumberLong("988998985857575789")});

แสดงผลลัพธ์

ใช้ find().pretty() เพื่อดูความแตกต่าง:

> db.demo603.find().pretty();

ผลลัพธ์:

{
    "_id" : ObjectId("5e9605e5ed011c280a0905d1"),
    "longValue" : NumberLong("988998985857575808")
}
{
    "_id" : ObjectId("5e9605faed011c280a0905d2"),
    "longValueInString" : NumberLong("988998985857575789")
}

สังเกตว่า longValue ถูกปัดเศษเป็น 988998985857575808 ในขณะที่ longValueInString คงค่าเดิมไว้ได้