MongoDB数据库,mongoengine使用
程序员文章站
2022-06-17 19:26:57
1.初始化连接
如果我们的MongoDB 是直接在本地电脑上面运行的,可以使用以下代码来连接到电脑上的MongoDB数据库:
from mongoengine import...
1.初始化连接
如果我们的MongoDB 是直接在本地电脑上面运行的,可以使用以下代码来连接到电脑上的MongoDB数据库:
from mongoengine import *
connect(‘数据库名’)
如果MongoDB不是运行在本地电脑上面的,就需要指定ip 地址和端口:
from mongoengine import *
connect(‘数据库名’, host=’192.168.2.12’, port=3456) #请注意端口号是数字不是字符串
2.定义文档
定义一个类,这里我们以个人信息为例。这个类继承MongoEngine 的Document类。请注意,这里的类名People 对应了MongoDB中的集合名。类中的每一个变量,对应了每一条记录中的列名。
from mongoengine import * class People(Document): name = StringField(required=True) #请注意所有写了required=True的变量,在类初始化的时候都是必须填写的参数哦。 age = IntField(required=True) sex = StringField(required=True) salary = IntField() #这里的IntField 或者StringField 对应了数据类型
3.创建对象
初始化People类,创建一个对象:
kingname = People(name='kingname', age=18, sex='male', salary=99999)
注意这里的参数name, age 和sex是不可以省略的,但是salary可以省略
kingname.save()
当然,我们也可以这样写:
kingname = People(name='kingname', age=18, sex='male') kingname.salary = 99999 kingname.save()
在信息已经保存以后,如果你想修改某个信息,你可以这样写:
kingname.age = 22 kingname.save()
这样就把年龄修改为22岁了。比pymongo简单太多了。
4.读取对象
如果想读取所有的用户信息怎么办呢?非常简单:
for person in People.objects: print(person.name) print(person.age) print(person.sex)
按条件搜索也非常简单,在People.objects后面加参数即可,例如搜索所有年龄为22岁的人:
for person in People.objects(age=22): print(person.name)
想知道是不是把这些信息写入到了数据库里面。你可以用RoboMongo读取一下数据库,看看是不是有一个集合叫做People,里面有我们添加进去的数据。
5.删除记录
如果你想删除记录,那就先把记录找出来,然后调用delete()方法吧:
kingname_list = People.objects(name='kingname') for kingname in kingname_list: kingname.delete()
例子
from mongoengine import * connect('people')#链接到已有数据库 class People(Document): name=StringField(required=True) age=IntField(required=True) sex=StringField(required=True) salary=IntField() chenxiao=People(name='chenxiao',age=26,sex='male',salary=99999) chenxiao.save() ''' 查询 ''' malelist=People.objects(sex='male') for man in malelist: print man.name >>>chenxiao
上一篇: C++部分关键字总结