mongodb

MongoDB属于非关系型数据库,它是由C++编写的分布式文档数据库。内部使用类似于Json的bson二进制格式。

中文手册

https://www.w3cschool.cn/mongodb/

安装

https://www.mongodb.com/try/download/community

docker 安装

cpp 复制代码
mkdir -p /usr/local/docker_mongodb
docker pull mongo:5.0
docker run -itd --name mongo -v /usr/local/docker_mongodb:/data -p 27017:27017 docker.io/mongo:latest

常用命令

cpp 复制代码
docker exec -it mongo bash
mongo admin  
/创建用户
> db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                },
                "readWriteAnyDatabase"
        ]
}
user:'root' :设置用户名为root
pwd:'123456':设置密码为123456
role:'userAdminAnyDatabase':只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
db: 'admin':可操作的数据库
readWriteAnyDatabase:赋予用户读写权限



链接测试
db.auth('root', '123456')

show dbs     查看当前有哪些库
use config     有就切换过去,没有就创建后切换过去。刚创建的并不在数据库列表中,需要写入数据后才能看到
db           查看当前数据库
db.users.insert({user:"tom", age:20}) db指代当前数据库;users集合名

测试数据库,插入一条语句
db.user.insert({"name":"zhangsan","age":18})
db.user.find()


#查看索引
db.user.getIndexes()
#创建索引
#db.user.createIndex({'age':1})

新增
> db.tables_student.insert({name: "老三", age: 80})
WriteResult({ "nInserted" : 1 })
修改
> db.tables_student.update({age: 80}, {$set: {name: "老四"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })


修改格式:
db.collection.update(query, update, [ upsert: boolean, multi: boolean, writeConcern: document])

-- 普通删除
> db.tables_student.remove({name: "老四"})
WriteResult({ "nRemoved" : 1 })

删除格式:
db.collection.remove(query, update, [ justOne: boolean, writeConcern: document])

查询
--  查询name=老四 或者 年龄 80
> db.tables_student.find({$or:[{name: "老四"},{age:80 }]})
{ "_id" : ObjectId("64c37c5b8f9cbe50b424e85a"), "name" : "老四", "age" : 80 }

-- 分页查询  以年龄升序排序 跳过第1条数据,查询后面2条数据
db.tables_student.find().sort({age:1}).limit(2).skip(1)  

-- 查询年龄小于等于21的数据,以年龄降序排序
db.tables_student.find({age:{$lte:21}}).sort({age:-1}) 


比较符号
小于	$lt:
大于	$gt:
小于或等于	$lte:
大于或等于	$gte:
不等于	$ne:

工具链接

-------------------end

相关推荐
二哈喇子!2 小时前
MySQL数据更新操作
数据库·sql
二哈喇子!2 小时前
MySQL命令行导入数据库
数据库·sql·mysql·vs code
心动啊1212 小时前
SQLAlchemy 的使用
数据库
曾经的三心草4 小时前
redis-2-数据结构内部编码-单线程-String命令
数据结构·数据库·redis
二哈喇子!4 小时前
基于SSM框架的公交车查询系统的设计与实现
java·数据库·ssm
Coder_Boy_4 小时前
基于SpringAI的在线考试系统-智能考试系统-学习分析模块
java·开发语言·数据库·spring boot·ddd·tdd
阿杰 AJie4 小时前
MySQL 聚合函数总表(完整版)
数据库·mysql
玄同7654 小时前
Python「焚诀」:吞噬所有语法糖的终极修炼手册
开发语言·数据库·人工智能·python·postgresql·自然语言处理·nlp
cdut_suye4 小时前
解锁函数的魔力:Python 中的多值传递、灵活参数与无名之美
java·数据库·c++·人工智能·python·机器学习·热榜
尽兴-4 小时前
MySQL 8.0高可用集群架构实战深度解析
数据库·mysql·架构·集群·高可用·innodb cluster