MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongo Заявка за подполета

Друг, по-ефективен подход би бил да внедрите вашия поддокумент за „състояние“ като масив от „въведени стойности“, като това:

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

Това ще ви позволи да намерите всички документи, за които някое от подполето има стойност „задължително“, с тази заявка:

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

Дефинирането на индекс в това подполе би ускорило заявката:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongo/node TypeError:обратното извикване не е функция при заявка

  2. Какво се случва, когато връзките към MongoDB не са затворени?

  3. Изключение:не може да се конвертира от BSON тип EOO към дата

  4. Как да изключите от резултатите от търсенето документи с полета, които не присъстват в заявката?

  5. Как да актуализирам, ако съществува, в противен случай вмъкнете нов документ?