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

Come ottengo la negazione di una query mongoide?

Per farlo, devi passare al driver Ruby MongoDB.

Se ho capito correttamente la domanda, il comando exclude di Mongoid esegue un AND quando stai cercando un OR tra le clausole $ne e non esiste un metodo per farlo.

Questo è ciò che vorresti nella shell:

find({$or: [{flagged: {$ne: true}}, {saved: {$ne: true}}]})

In ruby, quella query è simile a questa:

query = {"$or" => [{"flagged" => {"$ne" => true}}, {"saved" => {"$ne" => true}}]}

Se ricordo bene puoi dire:

Model.collection.find(query) dove la query è il documento che ho definito sopra e dovrebbe funzionare.