python + mongodb使用入门

最近用了下mongodb ,简单做个记录:

1.启动系统mongo服务
mongod -f mongod.conf

其中 mongod.conf 是配置文件,示例如下:

dbpath=/youpath/data/db   #数据库保存位置
logpath=/youpath/data/mongod.log #日志
logappend=true  
fork=true  #后台
2. 如何使用 python 创建一个名为 ‘mydatabase‘ 的数据库,并在该数据库里面建一个子库 “mycollection”:

实际上用mongo命令创建数据库和子库也比较简单:

use mydatabase
db.createCollection("mycollection")  
show dbs

使用Python创建如下, 示例 python test.py

from pymongo import MongoClient  
  
# 连接到MongoDB数据库  
client = MongoClient('mongodb://localhost:27017/')  
  
# 创建一个新的数据库  
db = client['mydatabase']  
  
# 创建一个新的集合  
collection = db['mycollection']  

# 插入数据  
data = {  
    'name': 'John',  
    'age': 30,  
    'city': 'New York'  
}  
result = collection.insert_one(data)  

# 打印插入的数据的ID  
print('Inserted data ID:', result.inserted_id)  

运行完上述可以看到数据库已经存在了,使用 db.mycollection.find() 也可以查看到我们插入的内容。
在这里插入图片描述

3. 如何使用Python插入数据到上面创建好的数据库中

示例: python insert.py

from pymongo import MongoClient  
# 要保存的数据  
data = [  
    {  
        'name': 'John',  
        'age': 30,  
        'city': 'New York'  
    },  
    {  
        'name': 'Jane',  
        'age': 25,  
        'city': 'Los Angeles'  
    }  
]  
    
# 连接到MongoDB数据库  
client = MongoClient('mongodb://localhost:27017/')  
  
# 选择数据库  
db = client['mydatabase']  
  
# 选择集合  
collection = db['mycollection']  
   
# 插入数据  
result = collection.insert_many(data)   #插入多条使用insert_many , 如果只有一条使用insert_one
  
# 打印插入的数据的ID列表  
print('Inserted data IDs:', result.inserted_ids)  

可以运行Python代码可以看到结果已经插入到数据库中了
在这里插入图片描述

4.删除创建的mongo数据库

连接到MongoDB实例。在命令行中使用mongo命令连接到MongoDB实例。
选择要删除的数据库。使用以下命令选择要删除的数据库:

use mydatabase

请将"mydatabase"替换为实际的数据库名称。
删除数据库。使用以下命令删除数据库:

db.dropDatabase()  

运行此命令后,MongoDB将删除指定的数据库及其所有集合和数据。请注意,此操作是不可逆的,删除的数据无法恢复,所以请在执行此操作之前务必备份重要的数据。
确认数据库已成功删除。您可以使用以下命令列出所有的数据库,确认目标数据库已被删除:

show dbs  

如果目标数据库不再显示在列表中,表示数据库已成功删除。
在这里插入图片描述

5.创建管理员账号并设置用户密码

要给MongoDB数据库设置账号密码,您可以按照以下步骤进行操作:
启动MongoDB实例时,使用–auth选项启用身份验证。例如,使用以下命令启动MongoDB实例:

mongod --auth  
  1. 连接到MongoDB实例。在命令行中使用mongo命令连接到MongoDB实例:
mongo  
  1. 进入管理员数据库(admin)。使用以下命令切换到管理员数据库:
use admin  
  1. 创建一个管理员账号。使用以下命令创建一个管理员账号:
db.createUser(  
  {  
    user: "admin",  
    pwd: "admin_password",  
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  
  }  
)  

你也将"admin"替换为您想要设置的管理员账号名称,"admin_password"替换为您想要设置的管理员密码。
在这里插入图片描述

先记录到这吧,,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/226610.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JS中Map对象与object的区别

若想了解Map对象可以阅读本人这篇ES6初步了解Map Map对象与object有什么区别?让我为大家介绍一下吧! 共同点 二者都是以key-value的形式对数据进行存储 const obj {name:"zs",age:18}console.log(obj)let m new Map()m.set("name&quo…

【Mac】brew提示arch -arm64 brew以及uname返回x86_64的问题

背景 使用MacBook 14 M1 Pro两年了,自从使用了第三方Shell工具WindTerm后,使用brew时会提示我使用arch -arm64 brew安装,一开始没太在意,直到今天朋友问我uname -a返回的是什么架构,我才惊讶的发现竟然返回的是x86_64…

Redis--12--Redis分布式锁的实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Redis分布式锁最简单的实现如何避免死锁?锁被别人释放怎么办?锁过期时间不好评估怎么办?--看门狗分布式锁加入看门狗 redissonRe…

HTTP、HTTPS、SSL协议以及报文讲解

目录 HTTP/HTTPS介绍 HTTP/HTTPS基本信息 HTTP请求与应答报文 HTTP请求报文 HTTP响应报文 SSL协议 SSL单向认证 SSL双向认证 HTTP连接建立与传输步骤 HTTP访问全过程相关报文(以访问www.download.cucdccom为例子) DNS报文解析 TCP三次握手连…

单位数字档案室解决哪些问题

单位数字档案室是旨在通过一种数字化的档案管理系统,将传统的纸质档案转化为电子版,并通过数字化技术进行整理、归类、存储和检索。该数字档案管理系统可以帮助机构和企业更加方便地管理和使用档案,提高档案管理效率和减少管理成本。同时&…

Selenium无头模式容易遇到的坑

在无头模式下,我们看不到浏览器的操作,但是selenium无头模式的浏览器向服务器发送的请求头和正常模式下还是有点区别的,这就导致了一些网站会检测到我们是用selenium来访问的,从而导致一些问题 下面就是我在使用selenium无头模式时…

系统设计之数据库

为您的项目选择正确的数据库是一项复杂的任务。许多数据库选项都适合不同的用例,很快就会导致决策疲劳。 我们希望这份备忘单提供高级指导,以找到符合您项目需求的正确服务并避免潜在的陷阱。 注意:Google 关于其数据库用例的文档有限。尽管…

【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)三种strlen模拟实现

🌈write in front :🔍个人主页 : 啊森要自信的主页 ✏️真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助&am…

C++: 多态

多态的基本概念: 多态是 C 面向对象三大特性之一 多态分为两类: 静态多态 : 函数重载 和 运算符重载属于静态多态,复用函数名 动态多态 : 派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定 …

学习IO的第三天

作业1 使用文件IO完成对图像的读写操作 #include <head.h>int main(int argc, const char *argv[]) {int fd -1;if((fdopen(argv[1],O_RDONLY)) -1){perror("open error");return -1;}int wd -1;if((wdopen(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0664)) -1){…

<蓝桥杯软件赛>零基础备赛20周--第9周--前缀和与差分

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周&#xff08;读者可以按…

智能优化算法应用:基于鹈鹕算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鹈鹕算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鹈鹕算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鹈鹕算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

【Linux】进程见通信之匿名管道pipe

1.匿名管道的特点 以下管道的统称仅代表匿名管道。 管道是一个只能单向通信的通信信道。为了实现进程间通信.管道是面向字节流的。仅限于父子通信或者具有血缘关系的进程进行进程见通信。管道自带同步机制&#xff0c;原子性写入。管道的生命周期是随进程的。 2.匿名管道通信…

Spring 向页面传值以及接受页面传过来的参数的方式

一、从页面接收参数 Spring MVC接收请求提交的参数值的几种方法&#xff1a; 使用HttpServletRequest获取。 RequestMapping("/login.do") public String login(HttpServletRequest request){ String name request.getParameter("name") String pa…

SpringCloud简介和用处

Spring Cloud是一套基于Spring Boot的微服务框架&#xff0c;它旨在提供一种快速构建分布式系统的方法。它可以帮助开发人员构建具有高可用性、可扩展性和容错性的微服务&#xff0c;并通过Spring Boot的开发工具和库提供强大的支持。 一、简介 Spring Cloud是Spring家族中的一…

ABB YuMi协作式双臂机器人进入工厂,极大缓解劳动力短缺问题

原创 | 文 BFT机器人 日本SUS公司是一家为汽车和其他制造业提供铝框架和压铸铝部件的知名供应商&#xff0c;近年来&#xff0c;由于全球供应链面临严重中断&#xff0c;该公司希望能够寻找一家自动化供应商来帮助其恢复日本静冈县的产品生产。SUS公司表示&#xff0c;由于生产…

从遍历到A星寻路算法

在游戏当中&#xff0c;经常需要找一个点到其它点的路径。在之前的一篇博文(地图编辑器开发&#xff08;三&#xff09;)中也有使用到到A*寻路算法。我们期望能找到最短的路径&#xff0c;同时也需要考虑到查找路径的时间消耗。游戏中的地图可以图的数据结构来表示&#xff0c;…

关于优雅的使用SQL多行转多列的记录(doris)

文章目录 应用需求场景记录过程1. 准备数据2. 给数据根据姓名分组&#xff0c;加上序号.3. 根据name分组成map结构4. 拆分map 应用需求场景 准备的数据是这样的&#xff1a; 需要将每个人的成绩显示在一行上&#xff0c;需要的结果如下&#xff0c;但是我的情况是课程有非常…

代码随想录二刷 | 栈与队列 | 前 k 个高频元素

代码随想录二刷 &#xff5c; 栈与队列 &#xff5c; 前 k 个高频元素 题目描述解题思路 & 代码实现 题目描述 347.前k个高频元素 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nu…

数据库:JDBC编程

专栏目录 MySQL基本操作-CSDN博客 MySQL基本操作-CSDN博客 数据库的增删查改&#xff08;CRUD&#xff09;基础版-CSDN博客 数据库增删改查&#xff08;CRUD&#xff09;进阶版-CSDN博客 数据库的索引-CSDN博客 基本概念 JDBC编程就是通过Java代码来操作数据库 api 数据库是…