我的Pymongo是3.2.1,从文档中我应该$cond
没有任何问题。
$cond
的语法是
{ $cond: [ <boolean-expression>, <true-case>, <false-case> ] }
我的查询是:
{'$and': [{u'$cond': [{u'activity': {u'$in': [u'specialLogin',
u'moreSpecialLogin']}},
{u'$or': [{u'log_type': u'user'}],
u'tags': u'Login AND NOT badLogin',
u'time': {u'$gt': 10}},
{u'$or': [{u'log_type': u'admin'},
{u'log_type': u'user'}],
u'tags': u'Login AND NOT badLogin',
u'time': {u'$gt': 10}}],
'time': {'$gt': datetime.datetime(2016, 12, 29, 19, 27, 49, 491065)}},
{'log_type': {'$ne': 'alert'}}]}
所以我的if条件是
{u'activity': {u'$in': [u'specialLogin', u'moreSpecialLogin']}}
如果是的话:
{u'$or': [{u'log_type': u'user'}],
u'tags': u'Login AND NOT badLogin',
u'time': {u'$gt': 10}}
如果错误:
{u'$or': [{u'log_type': u'admin'},
{u'log_type': u'user'}],
u'tags': u'Login AND NOT badLogin',
u'time': {u'$gt': 10}}
我一直在收到此错误
OperationFailure: unknown top level operator: $cond
在我看来,pymongo无法识别$ cond,但是从文档中可以看出$ cond评论(以及格式),因为mongodb 2.6
有人能发现这个问题吗?我在这里运气不好。