sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo-fråga om underfält

Ett annat, mer effektivt tillvägagångssätt skulle vara att implementera ditt "status"-underdokument som en uppsättning "skrivna värden", så här:

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

Detta skulle tillåta dig att hitta alla dokument, för vilka något av underfälten har värdet "required", med denna fråga:

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

Att definiera ett index i detta underfält skulle påskynda frågan:

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


  1. Kan jag konfigurera MongoDB för att vara i minnet?

  2. Kommunikation mellan två Docker-behållare på macOS 10.12

  3. Hur grupperar man mongodb - mapMinska utdata?

  4. Redis och Memcache eller bara Redis?