sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb-forespørgsel uden feltnavn

Desværre understøtter MongoDB ikke nogen metode til at forespørge på alle felter med en bestemt værdi. Der er en eksisterende Jira-billet, der anmoder om denne forbedring:https://jira.mongodb.org/browse/SERVER-1248. Du er velkommen til at kommentere, stemme eller følge den billet.

I mellemtiden er den sædvanlige måde, dette håndteres på, at ændre MongoDB-skemaet. For dit eksempel ville du ændre dit eksisterende skema:

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

Og du kan strukturere det sådan her:

{ tags:[ { cid:"123", værdi:"æble" }, { cid:"217", værdi:"pære" }, { cid:"179", værdi:"orange" }, ] } { tags:[ { cid:"831", værdi:"pære" }, { cid:"189", værdi:"druer" }, ] }

Når du har gjort dette, kan du udføre følgende forespørgsel for at finde alle de ønskede dokumenter:

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

Bemærk, at dette skema giver dig mulighed for at indeksere felterne 'tags.cid' og 'tags.value', hvilket dit oprindelige skema ikke gør.

Jeg håber, at dette hjælper.

-William



  1. Mongoose - valider e-mail-syntaks

  2. Forøgelse af hundredvis af tællere på én gang, redis eller mongodb?

  3. Modellering for venner-skema i mongoose?

  4. Mongodb, sharding og flere Windows-tjenester