ใช้ตัวดำเนินการ $pull เพื่อลบค่าเฉพาะ (เช่นสตริง) ออกจากอาร์เรย์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:
> db.removeAStringDemo.insertOne({"Score":[45,67,89,"John",98,99,67]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cda5224b50a6c6dd317adbd") }
แสดงเอกสาร (อาร์เรย์ Score มีทั้งตัวเลขและสตริง "John"):
> db.removeAStringDemo.find().pretty();
{ "_id" : ObjectId("5cda5224b50a6c6dd317adbd"), "Score" : [ 45, 67, 89, "John", 98, 99, 67 ] }
คิวรี่ลบสตริง "John" ออกจากอาร์เรย์ Score:
> db.removeAStringDemo.update(
{ _id : ObjectId("5cda5224b50a6c6dd317adbd") },
{ $pull: { "Score":"John" }}
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ตรวจสอบเอกสารอีกครั้ง:
> db.removeAStringDemo.find().pretty();
{ "_id" : ObjectId("5cda5224b50a6c6dd317adbd"), "Score" : [ 45, 67, 89, 98, 99, 67 ] }
สังเกต: ค่า "John" ถูกลบออกไปแล้ว ในขณะที่ตัวเลขคงอยู่ $pull จะลบ ทุกค่า ที่ตรงกับเงื่อนไขในอาร์เรย์