用pymongo操作MongoDB

用pymongo操作MongoDB

MongoDB是一个分布式存储的数据库,由C++语言编写的NoSQL库,数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。

MongoDB的特点是用于海量数据存储,不需要固定模式、不需要多余操作就可以横向扩展,低成本,安装简单,支持多种编程语言等。

  1. MongoDB常用命令
# 常用数据库命令
db # 查看当前数据库
show dbs # 查看所有的数据库
use database_name # 切换或创建数据库
db.dropDatabase() # 删除数据库
# 常用集合命令
db.createCollection(name, options) # 创建集合,指定集合名称和参数
show tables # 查看集合
show collections
db.collection_name.drop() # 删除集合
# 常用数据操作命令
db.collection_name.insert(document) # 插入数据
db.collection_name.remove(search_expr, justOne) # 删除数据,justOne可以设为true或1,表示只删除一个文档,如果不设置该参数或默认使用false,则删除所有匹配条件的文档。
db.collection_name.update(search_expr, new_val, optios) # 修改数据,选项upsert默认为false表示无相应记录是否插入,选项multi默认为false表示是否作用于多条记录。
# 查找数据
db.collection_name.find() # 查找所有数据
db.collection_name.find({condition_doc}) # 查找到所有匹配数据
db.collection_name.find().limit(num) # 读取指定数量的文档
db.collection_name.find().sort({field:1,...}) # 对查询结果进行排序
db.collection_name.find({condition}).count() # 统计结果中的文档数
语法操作格式
$eq等于{:}
$lt小于{:{$lt:}}
$lte小于等于{:{$lte:}}
$gt大于{:{$gt:}}
$gte大于等于{:{$gte:}}
$ne不等于{:{$ne:}}
$or{:{$or:}}
$in在范围内{:{$in:}}
$nin不在范围内{:{$nin:}}
  1. 使用python操作MongoDB

    使用pip install pymongo安装pymongo模块。

import pymongo
# 无需权限认证
myclient = pymongo.MongoClient("mongodb://localhost:27017")
print(myclient.list_database_names()) # 获得所有的数据库名称
# 获取数据库和集合
db = myclient.test # 或者client['test']
collection = db.stu # 或者db['stu']
# 插入数据
stu1 = {'id': '001', 'name': '张三', 'age': 10}
res = collection.insert_one(stu1) # 插入一条数据
stu2 = {'id': '002', 'name': '李四', 'age': 11}
stu3 = {'id': '003', 'name': '王五', 'age': 12}
res = collection.insert_many([stu2, stu3]) # 插入多条数据
# 删除数据
collection.delete_one({'name': '张三'})
collection.delete_many({'age': {'$lt':11}})
# 修改数据
condition = {'name': '张三'}
res = collection.find_one(condition)
res['age'] = 22
res = collection.update_one(condition, {'$set':res}) # 修改一条记录
print(res.matched_count, res.modified_count) # 获得匹配的、影响的数据条数
# 查找数据
ret = collection.find_one({'name':'张三'})
print(ret)
rets = collection.find({'age': {'$gt': 10}})
for ret in rets:
    print(ret)

results = collection.find().sort('age', pymongo.ASCENDING) # 按照年纪升序后输出
print([result['age'] for result in results]) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个错误通常是因为你的 MongoDB 数据库没有授权给你的 Python 程序或用户帐户。 要解决这个问题,你需要确保在连接 MongoDB 数据库时提供了正确的数据库用户名和密码。你可以使用以下代码来连接 MongoDB 数据库: ``` import pymongo myclient = pymongo.MongoClient("mongodb://username:password@localhost:27017/") mydb = myclient["test"] ``` 在这里,"username" 和 "password" 是你的 MongoDB 数据库用户名和密码,"localhost" 是你的 MongoDB 服务器地址,"27017" 是 MongoDB 的默认端口号,"test" 是你的数据库名称。 如果你已经提供了正确的用户名和密码,但是仍然无法连接 MongoDB 数据库,则需要检查你的 MongoDB 数据库是否已经授权给你的用户帐户。你可以通过以下命令来授权: ``` use admin db.createUser( { user: "username", pwd: "password", roles: [ { role: "root", db: "admin" } ] } ) ``` 在这里,"username" 和 "password" 是你要授权的用户名和密码,"roles" 是你要授予该用户的角色。在这个例子中,我们将该用户授予 "root" 角色,这个角色拥有最高的权限,可以执行任何操作。 如果你已经正确授权了用户帐户,但仍然无法连接 MongoDB 数据库,则需要检查你的 MongoDB 数据库是否已经启用了身份验证。如果身份验证已经启用,你需要在连接 MongoDB 数据库时提供身份验证信息,如下所示: ``` import pymongo myclient = pymongo.MongoClient("mongodb://username:password@localhost:27017/", authSource="admin") mydb = myclient["test"] ``` 在这里,"authSource" 参数指定了你的身份验证数据库名称。在这个例子中,我们将身份验证数据库设置为 "admin"。 希望这些信息对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

快乐江小鱼

知识创造财富,期待您的慷慨解囊

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

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

打赏作者

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

抵扣说明:

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

余额充值