sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongo-forespørgsel på underfelter

En anden, mere effektiv tilgang ville være at implementere dit "status"-underdokument som en række "indskrevne værdier", som denne:

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

Dette vil give dig mulighed for at finde alle de dokumenter, for hvilke et af underfelterne har værdien "påkrævet", med denne forespørgsel:

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

At definere et indeks på dette underfelt ville fremskynde forespørgslen:

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


  1. Mongodb bulk insert limit i Python

  2. Mongoose-egenskaben 'x' findes ikke på typen 'Dokument'

  3. Korrekt håndtering af asynkrone Mongo-handlinger i Node Promise

  4. Brug af løfter i Mongoose-ruter