sql >> Base de Datos >  >> NoSQL >> MongoDB

consulta mongodb sin nombre de campo

Desafortunadamente, MongoDB no admite ningún método para consultar todos los campos con un valor particular. Existe un ticket de Jira que solicita esta mejora:https://jira.mongodb.org/browse/SERVER-1248. Siéntete libre de comentar, votar o seguir ese ticket.

Mientras tanto, la forma habitual de manejar esto es cambiar el esquema de MongoDB. Para su ejemplo, cambiaría su esquema existente:

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

Y podrías estructurarlo de la siguiente manera:

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

Una vez hecho esto, puede realizar la siguiente consulta para encontrar todos los documentos deseados:

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

Tenga en cuenta que este esquema le permite indexar los campos 'tags.cid' y 'tags.value', lo que su esquema original no permite.

Espero que esto ayude.

-Guillermo