mongo 常用查询方法 pymongo mongoengine

1.mongoengine 查询返回指定列(指定字段) scalar

from models import UserDayStat, UserDetails

userdaystat = UserDayStat.objects(date="2020-06-30", day_age=0).scalar("uid")
userdetail = UserDetails.objects(create_date="2020-06-30").scalar("id")

l1 = set(userdetail) - set(userdaystat)
print(l1)

2.mongoengine 常用方法 原文出处 http://www.php.cn/mysql-tutorials-133672.html

register_time__gte 大于等于
register_time__gt 大于
register_time__lt 小于

* ne – 不相等
* lt – 小于
* lte – 小于等于
* gt – 大于
* gte – 大于等于
* not – 取反
* in – 值在列表中
* nin – 值不在列表中
* mod – 取模
* all – 与列表的值相同
* size – 数组的大小
* exists – 字段的值存在

3.mongo随机取N条数据 $sample

pipeline = [
    {'$match': {'date': {'$gte': "2019-12-20", '$lte': "2019-12-29"}}},
    {'$project': {'_id': 0, 'device_id': 1}},
    {'$sample': {'size': 100}}
]
# device_id 列表
userdaystat = UserDayStat.objects().aggregate(*pipeline)
for user in userdaystat:
    device_id_list.append(user.get("device_id"))
原文地址:https://www.cnblogs.com/zhaoyingjie/p/13220164.html