ใช้ตัวดำเนินการ $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ทุกตัว)