首页 > 数据库 >20.MongoDB

20.MongoDB

时间:2022-11-26 03:11:22浏览次数:73  
标签:20 name MongoDB self db data 数据库

MongoDB

安装MongoDB

官方网站:https://www.mongodb.com/try/download/community-kubernetes-operator2

软件安装

step1:以管理员的身份打开安装包直接点击Next

image

step2:继续点击Next

image

step3:点击自定义安装

image

step4:选择好安装路径,点击Next

image

step5:点击Next

image

step6:取消可视化界面勾线,直接点击Next安装

image

软件配置

step1:配置环境变量,找到MongoDB安装路径下的bin目录

image

step2:计算机--右击--属性--高级系统设置--环境变量--系统变量--path--新建,将bin目录复制进去即可

image

补充:进到data目录里面,新建两个文件夹,一个是db,一个是log

step3:打开cmd,输入mongod -dbpath "F:\MongoDB\data\db" -logpath "F:\MongoDB\data\log\mongo.log"

image

step4:重新打开一个cmd窗口,输入mongo来启动MongoDB shell 端

image

MongoDB操作

数据库相关操作

创建\删除数据库

use database_name
# 如果数据库不存在,则创建数据库,否则切换到指定数据库。

db.dropDatabase()
# 删除数据库之前,先进入数据库,之后执行
# 删除当前数据库

实例:

>use data_name
switched to db data_name
>db
data_name

如果你想查看所有数据库,可以使用 show dbs 命令:

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

可以看到,我们刚创建的数据库 data_name并不在数据库的列表中, 要显示它,我们需要向 data_name 数据库插入一些数据。

增删改查操作

MongoDB中的一张表被称为一个集合

插入数据

  • 语法:
# db.集合名.insert({})  数据格式为json
db.demo.insert({name:"坤哥"})
# { "_id" : ObjectId("63465fb77811f81334940270"), "name" : "坤哥" }

在数据库demo中,我们可以先通过 show collections 命令查看已存在的集合:

use demo
# switched to db demo
show collections
# func1
# func2

查询数据

  • 语法:
# 查找所有
db.集合名.find()

# 条件查询
db.集合名.find({name:"坤哥"})

修改数据

db.集合名.insert({name:"李四",sex:"男",love:"篮球"})
# 将李四修改为坤哥
db.集合名.update({name:"李四"},{$set:{name:"阿坤"}})

删除数据

db.集合名.remove({name:"张三"})
  • 删除集合
db.集合名.drop()
true

MongoDB与python

  • 链接数据库pymongo pip install pymongo
import pymongo


class MongoDB(object):
    def __init__(self):
        # 建立连接
        self.client = pymongo.MongoClient(host="localhost", port=27017)
        # 指定数据库
        self.db = self.client["demo"]
	
    # 插入一条数据
    def add_one_data(self):
        result = self.db.func.insert_one({"name": "张三", "age": 18, "sex": "男"})
        print(result)
	#插入多条数据
    def add_many_data(self, data):
        result = self.db.func1.insert_many(data)
        print(result)
	
    # 查看数据
    def get_one_data(self):
        result = self.db.func1.find_one()
        print(result)
	# 查看多个数据
    def get_many_data(self):
        result = self.db.func1.find({"name":"李四"})
        for data in result:
            print(data)


if __name__ == '__main__':
    mdb = MongoDB()
    data = [
        {"name": "张三", "age": 58, "sex": "男", "love": "唱歌"},
        {"name": "李四", "age": 48, "sex": "男", "love": "跳舞"},
        {"name": "王五", "age": 38, "sex": "女", "love": "rap"},
        {"name": "赵六", "age": 28, "sex": "女", "love": "篮球"}
    ]
    mdb.get_many_data()

标签:20,name,MongoDB,self,db,data,数据库
From: https://www.cnblogs.com/blog4lyh/p/16926819.html

相关文章

  • 《Learning to Resolve Alliance Dilemmas in Many-Player Zero-Sum Games》 2020-AAM
    学习解决多人零和博弈中的联盟困境总结:将两人的零和博弈扩展到多人零和博弈,并将多人零和博弈中的联盟问题转为社会困境问题用基于强化学习的方法进行解决。先是说明了一......
  • 2021 陕西省赛 C - GCD // 整除分块
    题目来源:2021年ICPC国际大学生程序设计竞赛暨陕西省第九届大学生程序设计竞赛题目链接:https://ac.nowcoder.com/acm/contest/35232/C题意给定三个整数\(l\)、\(r\)、\(......
  • F2F-L10U4 Talking about a presentation 20221120
    Putthesectionsonthehandoutintothecorrectorder.ListentotheaudioandcheckAnswerKey1Manager:...Andnextonouragenda,EvanBaxterfromSalesis......
  • P3627 [APIO2009] 抢掠计划
    从起点S到终点T,求一条路线获得最多的收益(每个点收益a[i]),可以重复通过路和点 裸题#include<bits/stdc++.h>usingnamespacestd;constintN=5e5+2;int......
  • 重构即将完成!2020版React Native会有多大改善?
    全文共1601字,预计学习时长6分钟图源:unsplash2015年,ReactNative被首次推出,使用ReactJS框架开发原生跨平台应用程序。该框架获得了社区的大力支持,并凭借其Web同行的......
  • GL-Talking about health problem 20221124
    TopicTalkingabouthealthproblemshaveyoueveraskedafriendforhealthadvice?Whatdidyousay?Whataresomecommonhealthproblemspeoplehave?Isomet......
  • [南京大学2022操作系统-蒋炎岩-P2] 笔记
    不得不说,X-macro真是个好魔法 使用C语言模拟状态机,再把它的输出传递给python数码管模拟器 ......
  • BUU 刷题之 护网杯 2018]easy_tornado 1
    今天打靶场第一次碰到这个题,就想记录下。虽然做题的过程基本都是照着WP做的。。。。。。首先我们进入这个题目,上面有三个文件链接,指出了flag的位置以及加密方式。还有rend......
  • GL-Choosing a bank 20221125
    Time2022.11.25FridayChoosingabankwhat'smoreimportanttoyou:'overdraftprotection'or'highinterestrates'?Investigatetheservicesofanewbang......
  • 【比赛游记】NOIP2022 游记
    Day0终于在今年,开通了从长乐至福州的地铁。从长乐航城到福州苍山的话,可以坐六号线转一号线,大致路线是郑和\(\to\)梁厝\(\to\)三叉街。1:20抵达希尔顿惠庭酒店(四......