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

Hvordan udelukker man dokumenter fra søgeresultater med felter, der ikke er til stede i forespørgslen?

Jeg må indrømme, at jeg ikke kender til nogen normal forespørgselsmetode til at løse dette problem. Der er kun én måde, jeg kender til, og det er at bruge MongoDBs objektsammenligning. For at gøre dette ville du ændre din struktur til at være noget i retning af:

{
    ps: [a,b]
}

eller:

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

Og så vil du forespørge som:

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

eller:

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

Der er dog et umiddelbart problem med dette. Den er afhængig af nøglerækkefølge, hvilket betyder, at hvis din a og b er faktisk omvendt i et andet dokument, vil det ikke matche. Så du skal sørge for, at du bekymrer dig om orden, når du gemmer, hvis du gør dette.

Håber det hjælper,



  1. mongoose:find data ved at gå i loop på en række modeller

  2. Proaktiv MongoDB-overvågning (udviklerstudie/rådgivervinkel)

  3. hvordan kan man gemme en Json i redis med hashmap(HSET)

  4. Redis forbindelse til 127.0.0.1:6379 mislykkedes - tilslut ECONNREFUSED