Featured image of post Docker-Run命令部署MongoDB

Docker-Run命令部署MongoDB

相关文章

【合集】Docker

MongoDB免费云数据库

MongoDB官网

Docker 安装 MongoDB

MongoDB新建数据库、集合以及用户创建和权限设置

如何在MongoDB中创建用户并添加角色

Download Studio 3T Free

MongoDB 创建数据库

部署

1
2
3
4
5
docker rm -f mongo
docker run -name mongo \
        -p 27017:27017 \
        --auth \
        -itd mongo:latest
1
2
3
4
5
6
7
docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')

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

常用命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
新增文档
db.集合名称.insert/save/insertOne(文档)

db.book.save({name: "张三"})
db.book.save({name: "张三",type: "zs"})

删除文档:
db.集合名称.remove(条件)
//db.book.deleteOne({type: "zs"})

修改文档:
db.集合名称.update(条件,{操作种类:{文档}})
db.book.update({type: "zs"},{name: "张三峰"})

查询文档:

基础查询
查询全部:		   db.集合.find();
查第一条:		   db.集合.findOne()
查询指定数量文档:	db.集合.find().limit(10)					//查10条文档
跳过指定数量文档:	db.集合.find().skip(20)					//跳过20条文档
统计:			  	db.集合.count()
排序:				db.集合.sort({age:1})						//按age升序排序
投影:				db.集合名称.find(条件,{name:1,age:1})		 //仅保留name与age域

条件查询
基本格式:			db.集合.find({条件})
模糊查询:			db.集合.find({域名:/正则表达式/})		  //等同SQL中的like,比like强大,可以执行正则所有规则
条件比较运算:		   db.集合.find({域名:{$gt:值}})				//等同SQL中的数值比较操作,例如:name>18
包含查询:			db.集合.find({域名:{$in:[值1,值2]}})		//等同于SQL中的in
条件连接查询:		   db.集合.find({$and:[{条件1},{条件2}]})	   //等同于SQL中的and、or

MongoTemplate

使用springboot整合MongoDB的专用客户端接口MongoTemplate来进行操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
@SpringBootTest
class Springboot17MongodbApplicationTests {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Test
    void contextLoads() {
        Book book = new Book();
        book.setId(2);
        book.setName("springboot2");
        book.setType("springboot2");
        book.setDescription("springboot2");
        mongoTemplate.save(book);
    }
    @Test
    void find(){
        List<Book> all = mongoTemplate.findAll(Book.class);
        System.out.println(all);
    }
}
皖ICP备2024056275号-1
发表了80篇文章 · 总计150.57k字
本站已稳定运行