MongoDB的常用操作以及python连接MongoDB

时间:2024-01-10 01:01:54 标签:  Python基础  MongoDB  python  数据库  

一,MongoDB的启动

mongod --dbpath=..\data\db
mongodb

注意同时开两个窗口,不要关!

在这里插入图片描述
在这里插入图片描述

二, MongoDB的简单使用

简单介绍一下mongoDB中一些操作

show dbs: 显示所有数据库
show databases: 显示所有数据库
use xxxx: 使用指定数据库/创建数据库(新库中插入数据才可以显示新库)
db: 当前正在使用的数据库
db.dropDatabase(): 删除数据库 当前的
show collections: 显示当前数据库中所有的集合(表)

三, MongoDB的增删改查

1. mongodb中常见的数据类型:

Object ID: 主键ID【"_id" : ObjectId("655e0fbb6b39977605602770")】
String: 字符串
Boolean: 布尔值  
Integer: 数字
Doube: 小数
Arrays: 数组,[1,2,3]
Null : 空值 
Timestamp: 时间戳
Date: 时间日期

2. mongodb插入数据/文档

#collection_name集合/表不存在则会新建
db.collection_name.insert({字段:值,字段:值})

示例:

db.c1.insert({name:"bobo", age:18, hobby:['eat', 'sleep']})
db.users.insertOne({name: "John", age: 30, email: "john@example.com"})
db.users.insertOne({name: "John", age: 30})

插入多条数据:

#c1是表名/集合名
db.getCollection('c1').insertMany([
        {
            "name":"bobo",
        },
        {
            "address":"河北"
        },
    ]
);

db.c1.insertMany([
  {name: "Alice", age: 25, email: "alice@example.com"},
  {name: "Bob", age: 35, email: "bob@example.com"}
])
  • 注意, 如果集合不存在. 则会自动创建集合

  • 插入数据后可以查询所有数据查看是否插入成功:

db.stu.find()

3. mongodb修改数据

3.1 update更新
#d1是表名
db.d1.update({查询条件}, {待修改内容}, {multi: 是否多条数据修改})
multi:true表示修改满足条件所有的内容,否则只修改满足条件的第一条内容,multi不写默认为false

示例:

db.d1.update({name:"bobo"}, {$set:{title:"alex", hobby:['抽烟', '喝酒', '烫头']}}, {multi:true});
db.c1.update({name:"bobo"}, {$set:{title:"alex", hobby:['抽烟', '喝酒', '烫头']}}, {multi:true});
db.users.updateOne({name: "John"}, {$set: {age: 31}})
db.users.updateMany({age: {$lt: 30}}, {$inc: {age: 1}})

4.mongodb删除数据

4.1 remove()
db.collection_name.remove({条件}, {justOne:true|false})
db.collection_name.remove() 删除所有记录
db.collection_name.drop()  删除collection/表

示例:

db.nor_col.remove({name:"jay"}, {justOne:true})
4.2 deleteOne()
db.collection_name.deleteOne({条件})

示例:

db.nor_col.deleteOne({name:"jay"})
db.users.deleteOne({name: "Alice"})
4.3 deleteMany()
db.collection_name.deleteMany({条件})

示例:

db.nor_col.deleteMany({name:"jay"})
db.users.deleteMany({age: {$gte: 40}})

5. mongodb查询数据

准备数据:

db.stu.insert([
	{name: "朱元璋", age:800, address:'安徽省凤阳', score: 160},
	{name: "朱棣", age:750, address:'江苏省南京市', score: 120},
	{name: "朱高炽", age:700, address:'北京紫禁城', score: 90},
	{name: "李嘉诚", age:38, address:'香港xxx街道', score: 70},
	{name: "麻花藤", age:28, address:'广东省xxx市', score: 80},
	{name: "大老王", age:33, address:'火星第一卫星', score: -60},
	{name: "咩咩", age:33, address:'开普勒225旁边的黑洞', score: -160}
])

5.1 普通查询
db.c1.find() 查询所有
db.c1.find({"字段":"固定值"})  查询满足条件的所有数据
db.c1.findOne({条件})  查询满足条件的第一条数据
db.getCollection('c1').find({"字段1":"固定值1","字段2":"固定值2"})

db.users.find({name: "John"})
db.users.findOne({age: {$gt: 30}})
条件查询:

使用逻辑与(AND)条件:

db.users.find({age: 30, city: "New York"})

使用逻辑或(OR)条件:

   db.users.find({$or: [{age: 25}, {city: "London"}]})

使用比较操作符进行范围查询

db.users.find({age: {$gt: 30, $lt: 40}})
5.2 比较运算
等于: 默认是等于判断, $eq
小于:$lt (less than)
小于等于:$lte (less than equal)
大于:$gt (greater than)
大于等于:$gte
不等于:$ne
db.stu.find({age:28})  查询年龄是28岁的学生信息
db.stu.find({age: {$eq: 28}})  查询年龄是28岁的学生信息
db.stu.find({age: {$gt: 30}})   查询年龄大于30岁的学生
db.stu.find({age: {$lt: 30}})   查询年龄小于30岁的学生
db.stu.find({age: {$gte: 38}})  查询年龄大于等于30岁的学生
db.stu.find({age: {$lte: 38}})  查询年龄小于等于30岁的学生
db.stu.find({age: {$ne: 38}})   查询年龄不等于38的学生
不用加“”
5.3 逻辑运算符

and
$and: [条件1, 条件2, 条件3…]

查询年龄等于33, 并且, 名字是"大老王"的学生信息
db.stu.find({$and:[{age: {$eq:33}}, {name:'大老王'}]})

or
$or: [条件1, 条件2, 条件3]

查询名字叫"李嘉诚"的, 或者, 年龄超过100岁的人
db.stu.find({$or: [{name: '李嘉诚'}, {age: {$gt: 100}}]})

nor

$nor: [条件1, 条件2, 条件3]

查询年龄不小于38岁的人, 名字还不能是朱元璋. 
db.stu.find({$nor: [{age: {$lt: 38}}, {name: "朱元璋"}]})
5.4 范围运算符

​ 使用$in, $nin判断数据是否在某个数组内

db.stu.find({age: {$in:[28, 38]}})   年龄是28或者38的人
5.5 正则表达式

​ 使用$regex进行正则表达式匹配

db.stu.find({address: {$regex:'^北京'}})  查询地址是北京的人的信息
db.stu.find({address: /^北京/})  效果一样
db.users.find({name: /^J/})//类似js语法
5.6 skip和limit
db.stu.find().skip(3).limit(3)	

跳过3个. 提取3个. 类似limit 3, 3 可以用来做分页

5.7 排序

sort({字段:1, 字段:-1})

1表示升序
-1表示降序

对查询结果排序, 先按照age升序排列, 相同项再按照score降序排列
db.stu.find().sort({age:1, score: -1})  
5.8 统计数量

count(条件) 查询数量

db.stu.count({age:33})

四,pymongo的使用

python处理mongodb首选就是pymongo. 首先, 安装一下这个模块

pip install pymongo

建立连接

import pymongo

conn = pymongo.MongoClient(host='localhost', port=27017)
print(conn)
# 切换数据库
py = conn['test']

# 登录该数据库(需要的话)
# #py.authenticate("python_admin", '123456')
# 简单来个查询
# 查询所有数据
result = py["stu"].find()
for r in result:
    print(r)
print(type(result))

在这里插入图片描述

来源:https://blоg.сsdn.nеt/аk_bingbing/аrtiсlе/dеtаils/134565242

智能推荐

MongoDB是什么     &nbsp

标签:MongoDB  数据库  nosql  

一、Docker安装MongoDbMongoDB版本:5.0.5参考:https://www.cnblogs.com/cwp-bg/p/10403327.htmlhttps://blog.csdn.net/weixin_45753881/article/details/126647801https://www.jianshu.com/p/79caa1cc49a51、准备工作①、创建三个文件夹

标签:MongoDB  docker  

(1)在windows的终端中打开mongodb的bin的安装目录

标签:MongoDB  数据库  python  

打开Mongodb服务,打开Robo 3T,链接服务并创建数据库&#

标签:# MongoDB  MongoDB  数据库  

一、简介         MongoDB是一个NoSQL型的数据库&#xff0c

标签:MongoDB  数据库  nosql  MongoDB  

一、MongoDB 简介 MongoDB 是一

标签:MongoDB  spring  spring boot  

又是mongodb集合的不强制文档具有相同一致的结构产生的问题。Mon

标签:MongoDB  MongoDB  数据库  

问题如果MongoDB 数据库集合中仅存在一条记录{ _id : ObjectId(5e6b4ef546b5f44e5c5b276d), name : 赵小明, used_name : [ 赵明, 赵小朋 ], age : 16, gender : 0, relatives : [ { name : 赵刚, relationship : 0

标签:操作  MongoDB  elemMatch  

简介         MongoDB是为快速开发互联网Web应用而设计的数据库系

标签:hbase  MongoDB  数据库  

添加文档语法:db.集合名.insert({k1:v1, k2:v2....})注意:(1)文档就是键值对,数据类型是BSON格式,支持的值更加丰富。比如:db.集合名.insert({name:bashlog, spc:{weight:100, address:henan}})(2)在添加的文档里面,都有一个_id的键,值为对象类型。

标签:操作  文档  MongoDB  

猜你喜欢

使用 DBeaver 连接 MongoDB 的教程如下: 首

标签:MongoDB  oracle  数据库  开发语言  java  前端框架  jvm  

查询db.getCollection(collection).find({})排序正序db.getCollection(collection).find({}).sort({字段:-1})倒序db.getCollection(collection).find({}).sort({字段:1})计数db.getCollection(collection).find({}).count()

标签:语法  常用  MongoDB  

标签:网络  JS  MongoDB  数据库  python  

首先按CTEL+ATL+T打开终端进入管理员控制,输入myfconsole进入metasploit(MSF)查找永恒之蓝(编码为ms17-010)输入search ms17-010这里主要是使用msf的exploit(攻击模块)和auxiliary(辅助模块)

标签:常用  操作  msf  

一,创建数据库语句:

标签:数据库  sql  java  

 1、需要先下载jdbc jar包,然后添加到工程上面 

标签:java  数据库  mysql  

MongoDB——》SpringBoot中MongoDB注解概念及使用 一、@D

标签:MongoDB  spring boot  数据库  

  mongodb的安装非常简单,官网有提供安装版和绿色版的下载(外网,速度慢的一批,网速跟不上的同志建议从其他渠道下载),我本地装的是安装版的,目录为默认目录。再此不细聊如何安装,直接进入主题,首先是如何启动。启动步骤:方法1:命令行参数方式启动服务  1.在mongodb安装目录下,与bin同级的目录下创建data文件夹,在文件夹中创建db,该db就是数据库的存储位置。  2.在bin目录下打开dos界面 ,输入命令行:  mongod --dbpath=../data/db  我们在启动信息中可以看到,mongodb的默认端口是27017,如果我们想改变默认的启动端口,可以通过--

标签:系统  MongoDB  windows  

相关问题

相关文章

热门文章

推荐文章

相关标签