MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Truy vấn Mongo trên các trường con

Một phương pháp khác, hiệu quả hơn, sẽ là triển khai tài liệu con "trạng thái" của bạn dưới dạng một mảng "giá trị đã nhập", như sau:

 {"_id" : ObjectId("51385d2308d427ce306f0100"),
  "aid" : "1",
  "studyId" : "study-1",
  "mediaType" : "microBlog",
  "text" : "bla bla",
  "sentences" : "bla bla",
  "status" : [
          { type: "algo1", value: "required" },
          { type: "algo2", value: "required" },
          { type: "algo3", value: "completed" },
          { type: "algo4", value: "completed" }
  ],
  "priority" : "u"}

Điều này sẽ cho phép bạn tìm thấy tất cả các tài liệu mà bất kỳ trường con nào có giá trị "bắt buộc", với truy vấn này:

db.foo.find({"status.value":"required"})

Việc xác định chỉ mục trên trường con này sẽ tăng tốc truy vấn:

db.foo.ensureIndex({"status.value":1})


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose Query:Tìm một phần tử bên trong một mảng

  2. Truy vấn MongoDB / Pymongo với Datetime

  3. Lỗi khi tạo bean với tên 'personRepository':Không gọi được phương thức init; ngoại lệ lồng nhau là com.mongodb.util.JSONParseException:

  4. Giới thiệu về kiểu dữ liệu MongoDB

  5. MongoDB - Tạo mối quan hệ