#统计函数 数据库 mongoengine

来源:互联网 发布:python opencv框出人脸 编辑:程序博客网 时间:2024/06/14 14:41
#统计函数#sum()      #求和#average()  #平均数#distinct() #种类 返回一个数组#返回的列#only()#exclude()#reload() 重新获取未取得值#all_fields() 重新获取所有的值#条件查询# ne - 不相等# lt - 小于# lte - 小于等于# gt - 大于# gte - 大于等于# not - 取反# in - 值在列表中# nin - 值不在列表中# mod - 取模# all - 与列表的值相同# size - 数组的大小# exists - 字段的值存在#一对一 ReferenceFieid()"""EmbeddedDocumentEmbeddedDocumentField   一对多 ListField()"""#meta={'allow_inheritance':True}  继承#def clean(self)  清理保存数据#默认建立id为_id 引用id,pk  关键字#文件列 FileField# -*- coding:utf-8 -*-from mongoengine import *connect = connect('ling')#创建一个数据模型继承Document类class User(Document):    uid  = SequenceField(primary_key=True) #创建一个递增列    name = StringField(null=True,required=True)    age  = IntField(min_value=6,max_value=100)    weight = FloatField(min_value=1,max_value=60)user_data = [    {"name":"Mike","age":13,"weight":32.5},    {"name":"John","age":12,"weight":33.5},    {"name":"Lily","age":12,"weight":35.5},    {"name":"Lisa","age":12,"weight":34.5},]#保存数据for item in user_data:    pass    #User(**item).save()#求平均年龄#方法1User.objects.sum("age")/User.objects.count()#方法2User.objects.average("age")#年龄小于13的和User.objects(age__lt=13).sum("weight")#年龄有多少种User.objects.distinct("age")#放回对应的列#onlyfor list in  User.objects.only('name','age'):    pass    #print list.uid,list.name,list.age,list.weight#结果"""1 Mike 13 None2 John 12 None3 Lily 12 None4 Lisa 12 None"""#excludefor list in  User.objects.exclude('name','age'):    list.reload() #重新获取没有取得的值    #list.all_fields()    list.uid,list.name,list.age,list.weight#结果"""1 None None 32.52 None None 33.53 None None 35.54 None None 34.5"""#查找#User.objects(age__in=12)#建立关系 1对1的关系 *class Waiter(Document):    name = StringField(max_length=20)    custom = ReferenceField(User)w = Waiter()w.name = 'Wtr A'w.custom = User.objects(age__lt=13)[1]#w.save()Waiter.objects[2].custom.name#1对多class Member(EmbeddedDocument):    name = StringField(max_length=30)class Team(Document):    name = StringField(max_length=30)    members = ListField(EmbeddedDocumentField(Member))ma = Member(name="Lisa")mb = Member(name="Mike")t = Team(name="occ",members=[ma,mb])#t.save()ts = Team.objects"""{ "_id" : ObjectId("56d3df1608279b3f30cf7840"), "name" : "oc", "members" : [ { "name" : "Lisa" },{ "name" : "Mike" } ]}"""#clean 例子class Ud(Document):    age = IntField(max_value=100)    year_of_birth = IntField()    def clean(self):        import datetime        d = datetime.datetime.now()        self.year_of_birth = d.year-self.age#u = Ud(age=23).save()#图片存储class Uf(Document):    name = StringField()    photo = FileField()f = Uf(name='meizi')fp = open('011.png','rb')f.photo.put(fp,content_type='image/jpeg')#f.save()fp.close()#读取文件存入到lisaphotop = Uf.objects[0].photo.read() #读取文件fd = open('lisa.jpg','wb+')fd.write(photop)fd.close()
0 0
原创粉丝点击