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

กำลังค้นหาองค์ประกอบอาร์เรย์ด้วย MongoDB หรือไม่


MongoDB ดีกว่าเมื่อคุณกำลังค้นหาองค์ประกอบอาร์เรย์ ให้เราใช้ไวยากรณ์ต่อไปนี้สำหรับการค้นหาองค์ประกอบอาร์เรย์ -

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

ไวยากรณ์ข้างต้นจะส่งคืนเอกสารทั้งหมดที่มีค่า “yourValue” ในฟิลด์อาร์เรย์

เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -

> db.queryArrayElementsDemo.insertOne({
   ... "StudentName":"John","StudentFavouriteSubject":["C","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c90c0354afe5c1d2279d694")
}
> db.queryArrayElementsDemo.insertOne({ "StudentName":"Carol","StudentFavouriteSubject":["C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c90c0434afe5c1d2279d695")
}
> db.queryArrayElementsDemo.insertOne({ "StudentName":"David","StudentFavouriteSubject":["MongoDB","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c90c0584afe5c1d2279d696")
}

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

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

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

{
   "_id" : ObjectId("5c90c0354afe5c1d2279d694"),
   "StudentName" : "John",
   "StudentFavouriteSubject" : [
      "C",
      "Java"
   ]
}
{
   "_id" : ObjectId("5c90c0434afe5c1d2279d695"),
   "StudentName" : "Carol",
   "StudentFavouriteSubject" : [
      "C",
      "C++"
   ]
}
{
   "_id" : ObjectId("5c90c0584afe5c1d2279d696"),
   "StudentName" : "David",
   "StudentFavouriteSubject" : [
      "MongoDB",
      "Java"
   ]
}

การค้นหาองค์ประกอบอาร์เรย์ด้วย MongoDB -

> db.queryArrayElementsDemo.find({StudentFavouriteSubject:"Java"}).pretty();

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

{
   "_id" : ObjectId("5c90c0354afe5c1d2279d694"),
   "StudentName" : "John",
   "StudentFavouriteSubject" : [
      "C",
      "Java"
   ]
}
{
   "_id" : ObjectId("5c90c0584afe5c1d2279d696"),
   "StudentName" : "David",
   "StudentFavouriteSubject" : [
      "MongoDB",
      "Java"
   ]
}

ดูผลลัพธ์ตัวอย่างด้านบน แบบสอบถามด้านบนส่งคืนเอกสารทั้งหมดที่มีค่า “Java”