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,一经查实,立即删除!

相关文章

python数据分析numpy基础之in1d检查数组元素是否在另一数组中

1 python数据分析numpy基础之in1d检查数组元素是否在另一数组中 python的numpy库的in1d(x,y)函数,检查数组x的元素是否在另一数组y中,并返回一个长度与x相等的布尔数组。 用法 numpy.in1d(ar1, ar2, assume_uniqueFalse, invertFalse, *, kindNone)描…

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

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

【四大组件】-- 广播接收器 BroadcastReceiver

目录 广播接收器 BroadcastReceiver实现原理使用流程广播的类型(1) 普通广播(2) 系统广播(3) 有序广播(4) App应用内广播 Local Broadcast粘性广播 面试问题 广播接收器 BroadcastReceiver 实现原理 Android 中的广播使用了设计模式中的观察者模式: 基于消息的发布…

【数据结构与算法 | 力扣篇】力扣每日一题2965, 2928

1. 力扣2965 : 找出缺失和重复的数字 (1). 题 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次,b 缺失 之外,每个整数都 恰好出现一次 。 任务是找出重复的数字a 和缺失…

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

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

【数据结构与算法】后续遍历的非递归实现

/** /*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? null : right)* }*/ /*** param {TreeNode} root* re…

【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,全自动挂机赚钱”。 传奇游戏,无疑是许多人心中那段青春时光的珍贵回忆。 即便是其手游版本,也依旧保持着极高的热度和人…

C++位运算

按位与: 按位与(AND)是一种位操作,用于将两个二进制数字的相应位进行逻辑与操作。其规则如下: 如果两个对应位的值都为1,则结果为1。否则,结果为0。 在C中,按位与操作符是 &。…

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

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

Chrome DevTools

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

PDF 转 word (优化版)

PDF 转 word (优化版) 原文链接:url,针对原文做了一些优化,适配性更好 首先在pdf所在文件夹中创建pdf2word.py import os from pdf2docx import Converterdef pdf_docx():# 获取当前路径file_path os.getcwd()# 获取…

【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 网关 总结 前言 理解这些设备的关键是他们运行在不同的层次上。之所以存在不同层的问题,是因为不同的设备使用不同的信息来决定如何交换。在典…