sql >> Database >  >> NoSQL >> MongoDB

Hoe documenten uit te sluiten van zoekresultaten met velden die niet aanwezig zijn in de zoekopdracht?

Ik moet toegeven dat ik geen normale vraagmethode ken om dit probleem op te lossen. Er is maar één manier die ik ken en dat is om MongoDBs objectvergelijking te gebruiken. Om dit te doen zou je je structuur veranderen in iets in de trant van:

{
    ps: [a,b]
}

of:

{
    ps: {p1:a,p2:b}
}

En dan zou je vragen als:

db.col.find({ p: [a,b] })

of:

db.col.find({ p: {p1:a, p2:b} })

Er is echter een onmiddellijk probleem hiermee. Het is afhankelijk van de volgorde van de toetsen, wat betekent dat als uw a en b zijn eigenlijk andersom in een ander document, het zal niet overeenkomen. Als u dit doet, moet u er dus voor zorgen dat u bij het opslaan rekening houdt met de bestelling.

Ik hoop dat het helpt,



  1. Aggregate framework kan geen indexen gebruiken

  2. Functie voor automatisch aanvullen implementeren met behulp van MongoDB-zoekopdracht

  3. aangepaste redis-client-compilatie mislukt

  4. Verbinding maken met beheerde redis met auth gebruikersnaam/wachtwoord nodejs