2014-05-16 5 views
0

je l'instruction SQL suivanteMongoDB equivelant to SQL "NOT LIKE" requête

SELECT Currency, TransTime, AuthTime FROM MONIES WHERE Currency not like 'USD%'; 

Si l'instruction SQL était simplement une requête "LIKE", il donnerait la déclaration MongoDB suivante

db.MONIES.find({ 
     "Currency": "USD%" 
    }, { 
     "Currency": 1, 
     "TransTime": 1, 
     "AuthTime": 1 
}); 

Est-ce la bonne requête pour un équivalent "NOT LIKE"? Je pense que cela est correct par the documentation for the 'not' operator, mais je voudrais vérifier avec Stackoverflow

db.MONIES.find({ 
     "Currency": { $not: { $like: 'USD%' } } 
    }, { 
     "Currency": 1, 
     "TransTime": 1, 
     "AuthTime": 1 
}); 
+0

il n'y a pas d'opérateur $ like, je pense que vous cherchez des expressions régulières http://docs.mongodb.org/manual/reference/operator/query/regex/ –

Répondre

2

The page you link a en fait un exemple de ce que vous voulez faire:

db.inventory.find({ item: { $not: /^p.*/ } }) 

Il n'y a pas d'opérateur $like, mais MongoDB prend en charge regular expressions.

+0

bien sûr, vous devez remplacer 'item' par ' Devise 'et remplacez' p 'par' USD ' –