2015-04-28 6 views
1

Следующий запрос работает в MongoDB оболочки:как написать запрос MongoDB в PyMongo

db.user.count({$and: [ {"agent_id":{$exists:true}}, {"is_agent":{$ne:true}} ] }) 

Когда я пытаюсь его в Python, я получаю другой ответ. Вот код питона:

import pymongo 
from pymongo import MongoClient 

def getCollection(cient,dbname,collection): 
    """Return a colleciton based on client, db and collection""" 
    data_base = getattr(client, dbname) 
    collObject = getattr(data_base, collection) 
    return collObject 

userColl = getCollection(client, "hkpr_restore","user") 

usersWithAgents = userColl.count({"$and": [ {"agent_id":{"$exists":"true"}}, {"is_agent":{"$ne":"true"}} ] }) 

print usersWithAgents 

Результаты около 11 000 для запроса Монго оболочки и около 17000 для запроса питон скрипт.

+0

Не могли бы вы уточнить, как вы получаете ответы на разные вопросы? –

+0

около 11 000 для одного запроса оболочки манго и около 17 000 для запроса скрипта python. – dwstein

ответ

0

Вы должны использовать:

"$exists": True 

и не

"$exists": "true" 

То же самое для $ne.

Смежные вопросы