sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb-fråga med fält i samma dokument

Du kan använda $where :

db.myCollection.find( { $where: "this.a1.a != this.a2.a" } )

Var dock medveten om att detta inte kommer att gå särskilt snabbt, eftersom det kommer att behöva snurra upp Javascript-motorn och upprepa varje dokument och kontrollera villkoren för varje.

Om du behöver göra den här frågan för stora samlingar, eller väldigt ofta, är det bäst att införa en denormaliserad flagga, som areEqual . Ändå ger sådana lågselektiva fält inte bra indexprestanda, eftersom kandidatuppsättningen fortfarande är stor.



  1. DeprecationWarning:collection.findAndModify är utfasad. Använd findOneAndUpdate, findOneAndReplace eller findOneAndDelete istället?

  2. Första MongoDB som är värd för DBaaS för att stödja Azure Government för den offentliga sektorn

  3. Hur man omdirigerar utdata från Redis-prenumeration

  4. Hur rensar jag fastnade/inaktuella Resque-arbetare?