sql >> Database >  >> NoSQL >> MongoDB

Mongo-query op subvelden

Een andere, efficiëntere benadering zou zijn om uw "status"-subdocument te implementeren als een reeks "getypte waarden", zoals deze:

 {"_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"}

Dit zou u in staat stellen om alle documenten te vinden waarvoor een van de subvelden de waarde "vereist" heeft, met deze vraag:

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

Het definiëren van een index op dit subveld zou de zoekopdracht versnellen:

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


  1. Apollo/GraphQL:Hoe geneste elementen te krijgen?

  2. waarom maak ik een 2dsphere-index, maar wanneer ik ernaar vraag, wordt s2cursor weergegeven?

  3. mongodb:vraag naar de tijdsperiode tussen twee datumvelden

  4. mongodb mangoest eenheid van maxDistance