MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

consulta mongodb sem nome de campo


Infelizmente, o MongoDB não suporta nenhum método de consulta de todos os campos com um valor específico. Existe um tíquete do Jira solicitando esse aprimoramento:https://jira.mongodb.org/browse/SERVER-1248 . Sinta-se à vontade para comentar, votar ou seguir esse ticket.

Enquanto isso, a maneira usual de lidar com isso é alterar o esquema do MongoDB. Para o seu exemplo, você alteraria seu esquema existente:
{"123": "apple", "217": "pear", "179": "orange"} 
{"831": "pear", "189": "grapes"} 

E você pode estruturar algo assim:
 { tags: [
        { cid: "123", value: "apple" },
        { cid: "217", value: "pear" },
        { cid: "179", value: "orange" },
      ]
    }
   { tags: [
        { cid: "831", value: "pear" },
        { cid: "189", value: "grapes" },
      ]
    }

Feito isso, você pode realizar a seguinte consulta para encontrar todos os documentos desejados:
 db.docs.find( {'tags.value': "apple" } )

Observe que esse esquema permite indexar os campos 'tags.cid' e 'tags.value', o que seu esquema original não permite.

Eu espero que isso ajude.

-William