ฉันใช้ MongoDB อย่างกว้างขวาง (ในช่วง 6 เดือนที่ผ่านมา) การสร้างระบบการจัดการข้อมูลแบบลำดับชั้นและฉันสามารถรับรองได้ทั้งความง่ายในการติดตั้ง (ติดตั้งใช้งานใช้มัน!) และความเร็ว ตราบใดที่คุณคิดเกี่ยวกับดัชนีอย่างระมัดระวังก็สามารถกรีดร้องอย่างฉลาดความเร็ว
ฉันรวบรวมว่า Cassandra เนื่องจากการใช้งานกับโครงการขนาดใหญ่เช่น Twitter มีฟังก์ชันการปรับขนาดที่ดีกว่าแม้ว่าทีม MongoDB จะทำงานเท่าเทียมกัน ฉันควรชี้ให้เห็นว่าฉันไม่ได้ใช้คาสซานดราเกินกว่าระยะทดลองใช้ดังนั้นฉันไม่สามารถพูดเพื่อดูรายละเอียดได้
Swinger ที่แท้จริงสำหรับฉันเมื่อเราประเมินฐานข้อมูล NoSQL คือการสอบถาม - Cassandra นั้นเป็นเพียงที่เก็บคีย์ / ค่ายักษ์และการสืบค้นนั้นค่อนข้างยุ่งเหยิง (อย่างน้อยเมื่อเทียบกับ MongoDB) ดังนั้นสำหรับประสิทธิภาพที่คุณต้อง ทำสำเนาข้อมูลค่อนข้างมากเป็นดัชนีคู่มือ ในทางกลับกัน MongoDB จะใช้โมเดล "เคียวรีตามตัวอย่าง"
ตัวอย่างเช่นสมมติว่าคุณมี Collection (MongoDB parlance สำหรับเทียบเท่ากับตาราง RDMS) ที่มีผู้ใช้ MongoDB เก็บบันทึกเป็นเอกสารซึ่งโดยทั่วไปแล้วเป็นวัตถุ JSON ไบนารี เช่น:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
หากคุณต้องการค้นหาผู้ใช้ทั้งหมดที่เรียกว่าสมิ ธ ซึ่งมีสิทธิ์ผู้ดูแลระบบคุณเพียงแค่สร้างเอกสารใหม่ (ที่คอนโซลผู้ดูแลระบบโดยใช้ Javascript หรือในการผลิตโดยใช้ภาษาที่คุณเลือก):
{
LastName: "Smith",
Groups: "Admin"
}
... แล้วเรียกใช้แบบสอบถาม แค่นั้นแหละ. มีโอเปอเรเตอร์ที่เพิ่มเข้ามาสำหรับการเปรียบเทียบการกรอง RegEx และอื่น ๆ แต่ทั้งหมดนั้นค่อนข้างง่ายและเอกสารที่ใช้ Wiki นั้นค่อนข้างดี