sql >> Database >  >> NoSQL >> MongoDB

Datastore-oplossing voor zoeken op tags

Mongodb kan aan wat je wilt, als je je objecten op deze manier hebt opgeslagen

{ score:2131, attributes: ["attr1", "attr2", "attr3"], ... }

Dan komt de volgende zoekopdracht overeen met alle items die att1 en attr2 hebben

c = db.mycol.find({ attributes: { $all: [ "attr1", "attr2" ] } })

maar dit komt niet overeen

c = db.mycol.find({ attributes: { $all: [ "attr1", "attr4" ] } })

de query retourneert een cursor, als je wilt dat deze cursor wordt gesorteerd, voeg dan de sorteerparameters toe aan de query, zoals zo

c = db.mycol.find({ attributes: { $all: [ "attr1", "attr2" ] }}).sort({score:1})

Bekijk Geavanceerde zoekopdrachten om te zien wat er mogelijk is.

Passende indexen kunnen als volgt worden ingesteld

db.mycol.ensureIndex({attributes:1, score:1})

En u kunt prestatie-informatie krijgen met

db.mycol.find({ attributes: { $all: [ "attr1" ] }}).explain()

Mongo legt uit hoeveel objecten zijn gescand, hoe lang de operatie duurde en verschillende andere statistieken.



  1. Redis-winkelsleutel zonder waarde

  2. Kan de gebruiker in MongoDB 3.0.2 niet authenticeren met behulp van een java-verbinding

  3. SailsJS &MongoDB Aggregation framework-problemen met aangepaste query's

  4. symfony2 vormkeuze en mongodb