Condividi
Operatore Mod (resto) in MongoDB
Qual'è in MongoDB la sintassi corretta per una query che soddisfi il seguente criterio o condizione se preferisci:
a % 4 >= 2
Ossia, come usare l'operatore (indicato con %) mod (modulo, resto di una divisione tra interi) in MongoDB? Ho provato con il comando illustrato di seguito, ma esso ritorna sempre vuoto (empty):
db.data.find( { a : { $mod : [ 4, { $gte : 2 } ] } } );
Ho provato anche usando la seguente espressione Javascript:
db.data.find( "this.a % 4 >= 2" );
Javascript funziona e ritorna i documenti attesi, ma non va bene per lavorare con PyMongo. Sto utilizzando:
- MongoDB version 2.0.4
- PyMongo version 2.1.1
In Corso
4
MongoDB
20-09-2019
2 Risposte
1072 Visite
+1
Risposte ( 2 approvate )
Non puoi usare l'operatore mod in una espressione come quella da te indicata, o utilizzi una condizione where o prima ti memorizzi il resto e poi lo confronti, quindi queste due strade:
{ $where: "this.a % 4 >= 2" }
a % 4
in un campo, e poi utilizzi il valore (ovvero il resto) per i tuoi confronti con gli operatori matematici maggiore, minore o quello che ti serve.Io non penso tu stia utilizzando una query mongodb con l'operatore mod in modo corretto, prova questa: