sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur utesluter man dokument från sökresultat med fält som inte finns i frågan?

Jag måste erkänna att jag inte känner till någon normal frågemetod för att lösa detta problem. Det finns bara ett sätt jag känner till och det är att använda MongoDBs objektjämförelse. För att göra detta skulle du ändra din struktur till att vara något i stil med:

{
    ps: [a,b]
}

eller:

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

Och sedan skulle du fråga som:

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

eller:

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

Det finns dock ett omedelbart problem med detta. Det är nyckelordningsberoende vilket betyder att om din a och b är faktiskt tvärtom i ett annat dokument kommer det inte att matcha. Så du måste se till att du bryr dig om ordning när du sparar om du gör detta.

Hoppas det hjälper,



  1. Hur man installerar Apache CouchDB i Ubuntu 20.04

  2. Skillnaden mellan InputSplit vs Blocks i Hadoop

  3. Redis tcp-backlog

  4. MongoDB Aggregationsoperatörer för returdatumdelar