mongodb.ip_info.aggregate([ {'$group':{'_id':'$query','num':{'$sum':1},'dups':{'$addToSet':'$_id'}}}, {'$match':{'num':{'$gte':2}}}, {'$sort':{'_id':1}}, ],{allowDiskUse:true}).forEach(function(doc){ doc.dups.shift(); db.ip_info.remove({'_id':{'$in':doc.dups}}); })
mongodb.domain_page.find().forEach(function(doc){ doc.insert_time = new ISODate(doc.insert_time); db.domain_page.save(doc) })
核心思想:使用MongoEngine操作aggregate+aggregate的Lookup操作。
pythonpipeline = [
{"$match": {"name": {"$regex": search}}},
{"$lookup":
{
"from": "linkman", # 要一起合并的数据库
"localField": "link_id", # Customer中的字段
"foreignField": "_id", # linkman中的字段
"as": "cl_all_data" # 将查询到的表合并成一个list
}
}
]
# 一定要有*号,
result = Customer.objects(customer_id=customer_id).aggregate(*pipeline)
for i in result:
print i
mongoexport -h 192.168.10.1 -p 27017 -u aa -p bb -d xx -c cc -0 /home/data/data.json --type json--authenticationDatabase admin
db.集合名字.aggregate([ # 按照相关要求进行匹配 {'$match':{'timestamp':{'$gte':ISODate('2019-02-15 00:00:00Z'),'$lt':ISODate('2019-3-25 00:00:00Z')}}}, # 根据两个字段进行分组 {'$group':{'_id':{'name':'$name','age':'$age'},'num':{'$sum':1}}}, # 在对某一个字段进行合并,计算数量 {'$group':{'_id':'$_id.dst','general_name':{'$push':'$_id.name'},'num': {'$sum':'$num'}}}, # 按照num降序排序 {'$sort':{'num':-1}} ],{'allowDiskUse':true})
本文作者:Eric
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!