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

mongodb заявка без име на поле

За съжаление, MongoDB не поддържа никакъв метод за запитване на всички полета с определена стойност. Съществува съществуващ билет на Jira, който изисква това подобрение:https://jira.mongodb.org/browse/SERVER-1248 . Чувствайте се свободни да коментирате, гласувате или следете този билет.

Междувременно обичайният начин за обработка на това е да се промени схемата на MongoDB. За вашия пример бихте променили съществуващата си схема:

{"123": "apple", "217": "pear", "179": "orange"} 
{"831": "pear", "189": "grapes"} 

И можете да го структурирате по следния начин:

 { tags: [
        { cid: "123", value: "apple" },
        { cid: "217", value: "pear" },
        { cid: "179", value: "orange" },
      ]
    }
   { tags: [
        { cid: "831", value: "pear" },
        { cid: "189", value: "grapes" },
      ]
    }

След като направите това, можете да изпълните следната заявка, за да намерите всички желани документи:

 db.docs.find( {'tags.value': "apple" } )

Имайте предвид, че тази схема ви позволява да индексирате полетата 'tags.cid' и 'tags.value', което оригиналната ви схема не прави.

Надявам се това да помогне.

-Уилям



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo не може да стартира

  2. Използване на множество бази данни Mongodb с Meteor.js

  3. задайте полето като празно за обект mongo с помощта на mongoose

  4. Как да използвам агрегирането на MongoDB за пагинация?

  5. MongoDB $toInt