ฉันมีชุดรวบรวม MongoDB พร้อมเอกสารในรูปแบบต่อไปนี้:
{
"_id" : ObjectId("4e8ae86d08101908e1000001"),
"name" : ["Name"],
"zipcode" : ["2223"]
}
{
"_id" : ObjectId("4e8ae86d08101908e1000002"),
"name" : ["Another ", "Name"],
"zipcode" : ["2224"]
}
ขณะนี้ฉันสามารถรับเอกสารที่ตรงกับขนาดอาร์เรย์ที่ระบุ:
db.accommodations.find({ name : { $size : 2 }})
ส่งคืนเอกสารที่ถูกต้องพร้อม 2 องค์ประกอบในname
อาร์เรย์อย่างถูกต้อง อย่างไรก็ตามฉันไม่สามารถทำ$gt
คำสั่งเพื่อส่งคืนเอกสารทั้งหมดที่name
เขตข้อมูลมีขนาดอาร์เรย์ที่มากกว่า 2:
db.accommodations.find({ name : { $size: { $gt : 1 } }})
ฉันจะเลือกเอกสารทั้งหมดที่มีname
ขนาดใหญ่กว่าหนึ่งเอกสารได้อย่างไร (โดยเฉพาะอย่างยิ่งโดยไม่ต้องแก้ไขโครงสร้างข้อมูลปัจจุบัน)