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

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


คุณสามารถใช้เมธอด find() เพื่อค้นหาเอกสารที่มีอาร์เรย์ที่มีค่าเฉพาะ ไวยากรณ์มีดังนี้:

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

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลเลกชันพร้อมเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้:

>db.findSpecificValue.insertOne({"StudentId":1,"StudentName":"Larry","FavouriteSubject":["C","C++","Java"]});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c6e8996140577d89182b8d0")}>db.findSpecificValue.insertOne({"StudentId":2,"StudentName":"Larry","FavouriteSubject":["MongoDB","MySQL","SQL เซิร์ฟเวอร์"]});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c6e89b1140577d89182b8d1")}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้:

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

ต่อไปนี้เป็นผลลัพธ์:

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

นี่คือการสืบค้นเพื่อค้นหาเอกสารที่มีอาร์เรย์ที่มีค่าเฉพาะ เช่น “MongoDB” สำหรับ FavouriteSubject ที่นี่:

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

ต่อไปนี้เป็นผลลัพธ์:

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