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

หาเอกสารที่ Array มีค่าเฉพาะใน MongoDB

ใช้ find() โดยระบุค่าที่ต้องการตรงใน Array โดยตรง MongoDB จะ Match เอกสารที่ Array มีค่านั้นอยู่

ไวยากรณ์


db.yourCollectionName.find({"yourArrayFieldName": "yourValue"}).pretty();

สร้างข้อมูลตัวอย่าง


> db.findSpecificValue.insertOne({"StudentId":1,"StudentName":"Larry","FavouriteSubject":["C","C++","Java"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6e8996140577d89182b8d0") }
> db.findSpecificValue.insertOne({"StudentId":2,"StudentName":"Larry","FavouriteSubject":["MongoDB","MySQL","SQL Server"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6e89b1140577d89182b8d1") }

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


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

Query: หาเอกสารที่ FavouriteSubject มี "MongoDB"


> db.findSpecificValue.find({"FavouriteSubject": "MongoDB"}).pretty();

ผลลัพธ์ (เฉพาะ StudentId: 2)


{
    "_id" : ObjectId("5c6e89b1140577d89182b8d1"),
    "StudentId" : 2,
    "StudentName" : "Larry",
    "FavouriteSubject" : ["MongoDB", "MySQL", "SQL Server"]
}

MongoDB จับคู่ Array Field ได้โดยอัตโนมัติ: {"field": "value"} จะ Match เอกสารที่ Array field มี value อยู่