MongoDB数据库的增删改查

3 篇文章 0 订阅
2 篇文章 0 订阅

1.简介

MongoDB数据库是由C++语言编写的肥关系型数据库,是一个基于分布式文件存储的开源数据库系统。

2.下载安装

官方网站:点这里
(1)我用的是在Windows下安装,大家有用其他的可以自己去百度一下,首先下载msi安装包,下载后点击安装,我这里的安装路径是E:\MongoDB,大家着自己选择自己想安装的路径,安装成功后,找到MongoDB的安装目录,在bin目录旁新建同级目录data,在data文件夹下建立db文件夹用于存储数据。
(2)在bin目录下打开cmd命令行,输入

mongod --dbpath “E:\MongoDB\data\db”

运行MongoDB服务,如果想一直使用该服务,就不能关闭命令行,当然,还有另外一种方法,可以一直开启MongoDB服务,
首先以管理员身份运行cmd,同时在bin目录旁建立同级目录logs,新建mongodb.log文件,在命令行里输入

cd E:/MongoDB/bin

进入MongoDB安装目录下的bin文件夹,继续在cmd窗口输入

mongod --bind_ip 0.0.0.0 --logpath “E:\MongoDB\logs\mongodb.log” --logappend --dbpath “E:\MongoDB\data\db” --port 27017 --serviceName “MongoDB” --serviceDisplayName “MongoDB” --install

运行此命令即可安装服务,在电脑的服务界面就能看到MongoDB服务已经安装成功。
这样,MongoDB就配置成功了。

3.连接数据库

我是在python3的环境下连接数据库的,首先打开cmd命令行输入

pip install pymongo

安装需要使用的PyMongo库,如果上面下载太慢,可以输入下面的命令

pip install -i http://pypi.douban.com/simple/ pymongo

利用豆瓣源可快速安装。
接下来就开始连接了

import pymongo
client = pymongo.MongoClient(host = 'localhost',port = 27017)
db = client['ts']     #ts是建立的数据库名称
collection = db['product']     #product是在ts数据库中建立的集合名称

4.插入数据

执行insert()方法

s = {
	'id':'01',
	'name':'xiaoming',
	'age':10
}
ins = collection.insert(s)

运行之后就可以在mongoDB数据库中看到已经插入这条记录
还有insert_one(): 插入一个记录,insert_many()插入多条记录。

5.查询.

可以通过find()方法和find_one()方法,find_one()得到的是一个结果,find()得到的是一个生成器对象,例如:

ins = collection.find_one({'age':10})
print(ins)

就可查到你想要找的数据,返回的是字典类型数据。

或者通过ObjectId查询,这个Id是MongoDB在插入数据自动添加的,
当需要获取年龄大于等于10的记录,可以使用比较符号。

ins = collection.find({'age':{'$gte',10}})
print(ins)

还有其他的比较符号,如下:

符号含义示例
$lt小于{‘age’:{’$lt’:20}}
$gt大于{‘age’:{’$gt’:20}}
$lte小于等于{‘age’:{’$lte’:20}}
$gte大于等于{‘age’:{’$gte’:20}}
$ne不等于{‘age’:{’$ne’:20}}
$in在范围内{‘age’:{’$in’:[20,23]}}
$nin不在范围内{‘age’:{’$nin’:[20,23]}}

还可以用正则匹配查询,一些功能符号,如下:

符号含义示例示例含义
$regex匹配正则表达式{‘name’:{’$regex’:’^M.*’}}name以M开头
$exists属性是否存在{‘name’:{’$exists’:True}}name属性存在
$type类型判断{‘age’:{’$type’:‘int’}}age的属性是int
$mod数字摸操作{‘age’:{’$mod’:[5,0]}}年龄模5余0
$text文本查询{‘KaTeX parse error: Expected '}', got 'EOF' at end of input: text':{'search’:‘xiaoming’}}text类型的属性中包含xiaoming的字符串
$where高级条件查询{’$where’:‘obj.fans == obj.follows_count’}自身粉丝数等于关注数

更详细的用法,请在官方文档中查阅。

6.更新

使用update()方法

con = {'name':'xiaoming'}
s = collection.find_one(con)
s['age']=20
ins =collection.update(con,s)

先找到记录,然后进行更新操作。
还有两种方法,update_one()和update_many(),大家就自己探索吧。

7.删除

使用remove()方法

s = collection.remove({'name':'xiaoming'})
print('删除成功')

根据name的值来删除符合条件的记录。
同时还有其他两种方法,delete_one()和delete_many()分别为删除符合条件的第一条数据和删除符合条件的所有数据

8.小结

PyMongo还提供了一些其他的方法,详细的大家可以看官方文档https://pypi.org/project/pymongo/
上面的只是我学的一点拙见,有错误希望大家指出来,我会立即更改,大家有什么想法也可以和我讨论一下。

推荐大家一个MongoDB可视化的软件**Robo 3T **

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Watermelon,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值