MongoDB-4.2.1 之安装和使用

安装

下载安装包

我自己电脑是 Windows7 的老古董,所以就下载老版本的 MongoDB。

mongodb:

https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.1.zip

解压安装包到指定路径

我解压到的 C 盘

C:\mongodb-4.2.1

添加环境变量

创建数据库和日志目录

启动守护进程 

mongod --dbpath "C:\mongodb-4.2.1\data" --logpath "C:\mongodb-4.2.1\logs\mongo.log"

连接MongoDB数据库

mongo

下载 MongoDB Compass

compass:

https://downloads.mongodb.com/compass/mongodb-compass-1.25.0-win32-x64.zip

启动连接数据库

用户名密码登录

默认不需要用户名密码即可登录,但我们可以自己创建用户名密码以及指定对应的的权限。

db.createUser({user: "admin",pwd: "admin",roles: [ { role: "readWrite", db: "admin"} ]}
)

然后就可以使用新的用户名密码在 Compass  进行登录了。

使用

数据库操作

创建数据库

> use test
switched to db test

集合操作

创建集合

db.createCollection("orders")
{ ok: 1 }

操作文档

插入文档

db.orders.insertOne({ "username": "Tom", "product": "phone", "price": 1000 })

查询文档

db.orders.find({username:"Tom"})
{ _id: ObjectId("665c333e567231295cf51a71"),username: 'Tom',product: 'phone',price: 1000 }

索引操作

创建索引

db.orders.createIndex({ "username": 1 })
{ createdCollectionAutomatically: false,numIndexesBefore: 1,numIndexesAfter: 2,ok: 1 }

API接口

Python连接操作

from pymongo import MongoClient# 创建MongoDB连接
client = MongoClient('mongodb://admin:admin@localhost:27017')# 选择数据库和集合
db = client['test']  # 选择数据库
collection = db['orders']  # 选择集合class MongoDbHandler:def __init__(self):self.client = clientself.db = client['test']self.collection = self.db['orders']def list_database_names(self):print(self.client.list_database_names())def find_data(self):# for document in self.collection.find({"username": "Looking"}):for document in self.collection.find().sort("username"):print(document)# {'_id': ObjectId('665c333e567231295cf51a71'), 'username': 'Tom', 'product': 'phone', 'price': 1000}# {'_id': ObjectId('665c33d6567231295cf51a72'), 'username': 'Looking', 'product': 'Book', 'price': 50}# {'_id': ObjectId('665c3c7cec9751b7de2b09d6'), 'username': 'John', 'product': 'Shoes', 'price': 500}# {'_id': ObjectId('665c3d90b7e847ae9f730c62'), 'username': 'Sandra', 'product': 'Shoes', 'price': 500}# {'_id': ObjectId('665c3d90b7e847ae9f730c63'), 'username': 'Jerry', 'product': 'Food', 'price': 500}def insert_one(self):data = {"username": "John", "product": "Shoes", "price": 500}res = self.collection.insert_one(data)print(res)  # InsertOneResult(ObjectId('665c3c7cec9751b7de2b09d6'), acknowledged=True)def insert_many(self):datas = [{"username": "Sandra", "product": "Shoes", "price": 500},{"username": "Jerry", "product": "Food", "price": 500},]res = self.collection.insert_many(datas)print(res)# InsertManyResult([ObjectId('665c3d90b7e847ae9f730c62'), ObjectId('665c3d90b7e847ae9f730c63')], acknowledged=True)def update_data(self):query = {"username": "Tom"}new_values = {"$set": {"price": 12345}}res = self.collection.update_one(query, new_values)  # update_one 只修改匹配到的第一个结果# res = self.collection.update_many(query, new_values)  # update_many 用于修改所有匹配的结果print("matched:", res.matched_count)# matched: 1print("modified:", res.modified_count)# modified: 1def delete_data(self):query = {"username": "John"}res = self.collection.delete_one(query)  # delete_one 只删除匹配到的第一个结果print("acknowledged:", res.acknowledged)# acknowledged: Trueprint("deleted_count:", res.deleted_count)# deleted_count: 1if __name__ == '__main__':mongodb_handler = MongoDbHandler()# mongodb_handler.list_database_names()mongodb_handler.find_data()# mongodb_handler.insert_one()# mongodb_handler.insert_many()# mongodb_handler.update_data()# mongodb_handler.delete_data()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【免费Web系列】JavaWeb实战项目案例六

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 员工信息-删除&修改 前面我们已经实现了员工信息的条件分页查询以及新增操作。 关于员工管理的功能,还有两个需要实现: 删除员工 修改员工 除了员工管理的功能之外&#x…

基于springboot+vue的家乡特色推荐系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

【Linux】Linux工具——gcc/g++

1.使用vim更改信用名单——sudo 我们这里来补充sudo的相关知识——添加信任白名单用户 使用sudo就必须将使用sudo的那个账号添加到信用名单里,而且啊,只有超级管理员才可以添加 信用名单在/etc/sudoers里 我们发现它的权限只是可读啊,所以…

分享:重庆耶非凡科技有限公司人力资源项目靠不靠谱?

在当今快速变化的商业环境中,人力资源项目作为企业发展的重要支撑,其专业性和可靠性成为企业选择合作伙伴时的重要考量因素。重庆耶非凡科技有限公司作为一家在行业内颇具影响力的科技企业,其人力资源项目——人力RPO(招聘流程外包)项目&…

dm8 什么时候视图中统计的内存会超过OS

v$bufferpool和v$mem_pool视图记录着DMSERVER各组件的内存占用量。理论上跟OS看到的保持一致。但实际大多数场景下,OS中看到的数据远大于视图中的统计。这里面可能有内存泄漏的原因。不过也有的时候视图中的统计数据超过OS。下面就是这种情况: 上图中红线…

Java_Mybatis

Mybatis是一款优秀的持久层框架,用户简化JDBC(使用Java语言操作关系型数据库的一套API)开发 使用Mybatis查询所有用户数据: 代码演示: UserMapper: Mapper //被调用时会通过动态代理自动创建实体类,并放入IOC容器中…

用cloudflared 把家里电脑网站可以让任何人试用

一针见血说技术,通俗易懂去实现自己的想法 一、背景 搭建一个网站,或者有个自己开发的算法,需要供应少量的人免费服务,也可以用于向合伙人演示。需要一个云服务,要么购买。还得啰嗦学习一些网站的开通知识&#xff0…

单号日入50+,全自动挂机赚钱

大家好!今天我为大家精心挑选了一个极具潜力的副业项目——“游戏工作室自由之刃2:单号日入50,全自动挂机赚钱”。 传奇游戏,无疑是许多人心中那段青春时光的珍贵回忆。 即便是其手游版本,也依旧保持着极高的热度和人…

【教程】20个高级 Python 函数,让你编程更高效

在Python的编程世界中,函数是我们编写代码的重要工具之一。除了常见的内置函数外,Python还提供了许多强大而有趣的高级函数,它们可以帮助我们简化代码、提升效率,甚至在某些情况下让编程变得更加有趣。让我们一起来探索这些高级函数的奇妙之处吧! 1.enumerate() – 枚举函…

Chrome DevTools

Console 面板 此章节请打开 justwe7.github.io/devtools/console/console.html 一起食用 一方面用来记录页面在执行过程中的信息(一般通过各种 console 语句来实现),另一方面用来当做 shell 窗口来执行脚本以及与页面文档、DevTools 等进行交…

【C++进阶】深入STL之string:模拟实现走进C++字符串的世界

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:C模板入门 🌹🌹期待您的关注 🌹🌹 ❀STL之string 📒1. string…

VRRP

文章目录 VRRP基本原理技术背景VRRP作用VRRP概述VRRP名词解释VRRP路由器VRRP组虚拟路由器虚拟IP地址、MAC地址Master、Backup路由器 VRRP状态机Master/ Backup 路由器Master路由器:Backup路由器: VRRP的工作过程 VRRP基础配置![image.png](https://img-blog.csdnimg.cn/img_con…

05C零碎语法

C零碎语法 目录 文章目录 C零碎语法1.函数指针2.回调函数3.数据拷贝3.1静态内存分配![请添加图片描述](https://img-blog.csdnimg.cn/direct/54d44e32bb7944f0866d4ca1e2667ce8.png)### 4.1动态内存分配 字符串6.sizeof()和strlen()的区别7.strcpy()/strncpy()函数7.1**strcp…

中继器、集线器、网桥、交换机、路由器和网关

目录 前言一、中继器、集线器1.1 中继器1.2 集线器 二、网桥、交换机2.1 网桥2.2 交换机 三、路由器、网关3.1 路由器3.2 网关 总结 前言 理解这些设备的关键是他们运行在不同的层次上。之所以存在不同层的问题,是因为不同的设备使用不同的信息来决定如何交换。在典…

【Hive SQL 每日一题】统计指定范围内的有效下单用户

文章目录 测试数据需求说明需求实现 前言:本题制作参考牛客网进阶题目 —— SQL128 未完成试卷数大于1的有效用户 测试数据 -- 创建用户表 DROP TABLE IF EXISTS users; CREATE TABLE users (user_id INT,name STRING,age INT,gender STRING,register_date STRING…

外卖点餐系统 springboot+vue+element-ui

免费获取方式↓↓↓ 项目介绍038: http://localhost:8080/ 账号:weiguanke 123 系统登陆后展示 用户可视界面 – 登录页面 – 首页: – 店铺查找页面: 店铺查找 – 店铺页面 店铺管理者可视页面 – 店铺页面 店铺管理员…

XCP协议系列介绍02-基于ASAP2 Tool-Set生成A2l介绍

本文框架 1. 前言2. ASAP2 Tool-Set系统介绍2.1 ASAP2 Creator介绍2.2 ASAP2 Updater介绍2.3 ASAP2 Merger介绍2.4 ASAP2 Comparer及Checker介绍2.5 ASAP2 Modifier介绍2.6 ASAP2 Studio介绍 3. 项目实操说明3.1 项目实操建议3.2 工具下载地址及使用 1. 前言 在XCP观测及标定整…

【计算机组成原理】1.1计算机的软硬件组成(记录学习计算机组成原理)

文章目录 1.早期的冯诺依曼机2.早期冯诺依曼机的基本运行框图3.早期冯诺依曼机的特点4.现代计算机的结构5. 小结 本次及以后有关于计算机组成原理的文章,旨在做学习时的记录和知识的分享。不论是应对期末考试,还是考研都是很有帮助的。希望大家多多支持更…

基于Android Studio 实现的鲜花(购物)商城App--原创

一、高质量源码(非开源) 关注公众号:《编程乐学》 后台回复:24060201 二、项目演示视频 基于Android Studio 实现的鲜花商城App--原创 三、开发环境 四、设计与实现 1.启动页 启动页我们需要用到倒计时和跳转功能。 2.注册登录 …

chat3-Server接收数据并转发给所有Client

本文档描述了Server端接收到Client的消息并转发给所有客户端或私发给某个客户端 服务端为当前客户端创建一个线程,此线程接收当前客户端的消息并转发给所有客户端或私发给某个客户端 一、Server: 1.1.Server端添加将消息转化给客户端的代码。有用集合保存输出流,…