相关文章
【合集】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);
}
}
|