欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MongoDB数据库,mongoengine使用

程序员文章站 2022-03-08 23:21:40
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