【发布时间】:2019-12-15 10:44:22
【问题描述】:
我正在尝试在我的 pymongo 查询中执行 'd': None。但是当我做None。我没有得到任何结果。
我的 SQL:
SELECT date, a, vt, b, c, d
,SUM(theSum) AS theSum
FROM table
where date between '2019-07-08' and '2019-08-08'
AND a in ( 'abc', 'xyz')
AND c IN ('qwe')
AND b IS NOT NULL
AND (d IN ('yo') OR d IS NULL)
group by 1,2,3,4,5,6
order by theSum DESC
LIMIT 25
PyMongo:
{'$match': {
'$and': [{
'date': {
'$gte': sd,
'$lte': ed
},
'a': { '$in': a },
'b': {'$ne': None},
'c': { '$in': c },
}, {
'$or': [{
'd': {'$in': d}
}, {'d': None
}]
}]
}
}
{
'$group': {
'_id': {
'a': '$a',
'vt': '$vt',
'b': '$b',
'c': '$c',
'd': '$d'
},
'theSum':{
'$sum': '$theSum'
}
}
}, {
'$project': {
'_id': 0,
'a':'$_id.a',
'vt': '$_id.vt',
'b': '$_id.b',
'c': '$_id.c',
'd': '$_id.d',
'theSum': '$theSum'
}
}, {
'$sort': { 'theSum': -1 }
}, {
'$limit': 25
}
])
我在 SQL 中查询时得到 43 条记录,但在查询 pymongo 代码时得到 0 条记录。我在 pymongo 中做错了什么。
【问题讨论】:
标签: python sql django mongodb pymongo