sql >> Database >  >> NoSQL >> MongoDB

mongodb-query zonder veldnaam

Helaas ondersteunt MongoDB geen enkele methode om alle velden met een bepaalde waarde te doorzoeken. Er is een bestaand Jira-ticket dat om deze verbetering vraagt:https://jira.mongodb.org/browse/SERVER-1248 . Voel je vrij om commentaar te geven, te stemmen of dat ticket te volgen.

In de tussentijd is de gebruikelijke manier waarop dit wordt afgehandeld, het wijzigen van het MongoDB-schema. Voor uw voorbeeld zou u uw bestaande schema wijzigen:

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

En je zou het ongeveer als volgt kunnen structureren:

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

Zodra u dit heeft gedaan, kunt u de volgende zoekopdracht uitvoeren om alle gewenste documenten te vinden:

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

Merk op dat u met dit schema de velden 'tags.cid' en 'tags.value' kunt indexeren, wat uw oorspronkelijke schema niet doet.

Ik hoop dat dit helpt.

-Willem



  1. Hoe gebruik ik mongodb met elektron?

  2. Redis gebruiken als cache voor een mysql-database

  3. Wat is de juiste manier om te indexeren in MongoDB als er een grote combinatie van velden bestaat?

  4. Hoe het Datumveld op te slaan als ISODate() met Jackson in MongoDb