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

วิธีลบค่า null ออกจากอาร์เรย์ใน MongoDB ด้วย $pull

ใช้ตัวดำเนินการ $pull เพื่อลบค่า null ออกจากอาร์เรย์

ตัวอย่างการใช้งาน

สร้างคอลเลกชันพร้อมเอกสารที่มีอาร์เรย์ประกอบด้วย null:

> db.removeNullDemo.insertOne(
... {
...   "_id" : 1,
...   "StudentDetails" : [
...     { "FirstName": "John", "LastName":"Smith" },
...     { "Age":21 },
...     null
...   ]
... }
... );
{ "acknowledged" : true, "insertedId" : 1 }
> db.removeNullDemo.insertOne(
... {
...   "_id" : 2,
...   "StudentDetails" : [
...     { "FirstName": "Carol", "LastName":"Taylor" },
...     { "Age":23 }
...   ]
... }
... );
{ "acknowledged" : true, "insertedId" : 2 }

แสดงเอกสารทั้งหมด:

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

ผลลัพธ์ (เอกสาร _id:1 มี null ในอาร์เรย์):

{ "_id" : 1, "StudentDetails" : [
    { "FirstName" : "John", "LastName" : "Smith" },
    { "Age" : 21 },
    null
] }
{ "_id" : 2, "StudentDetails" : [
    { "FirstName" : "Carol", "LastName" : "Taylor" },
    { "Age" : 23 }
] }

ลบ null ออกจากอาร์เรย์

> db.removeNullDemo.update({_id:1},{$pull:{StudentDetails:null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ตรวจสอบผลลัพธ์:

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

ผลลัพธ์ (null ถูกลบออกแล้ว):

หมายเหตุ: $pull จะลบ ทุกค่า ในอาร์เรย์ที่ตรงกับเงื่อนไข (ในที่นี้คือ null ทุกตัว)