安装软件
1 安装mongodb服务 自己的虚拟机 docker 安装
2 安装可视化工具 Robo 3t 免费的可视化工具
3 连接上
开始操作
创建数据库
use 数据库名称
例如 use bbb;
ctrl+enter 执行命令 或者点击上面的绿色按钮
1. 创建数据库 use runoob
2. 插入数据 db.runoob.insert({"name":"菜鸟教程"})
3. 删除数据库 use runoob 切换,然后删除 db.dropDatabase()
4. 创建表 db.createCollection("runoob")
5. 查询当前数据库有哪些表 show collections
6. 删除表 mycol2为表名称 db.mycol2.drop()
7. 向一个表中插入多条数据 db.collection.insertMany([{"b": 3}, {'c': 4}])
8. 更新文档的某个字段 db.collection.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
9. save 根据id 替换所有传入的相应数据 db.collection.save({....})
10. 根据条件title内容 删除文档 db.collection.remove({'title':'MongoDB 教程'})
11. 查询文档 db.collection.find({}) db.collection.findOne({})
12. or查询 db.user.find({$or:[{"likes":{$gte:100}},{"likes":{$lt:200}}]})
13. and 查询 db.user.find({"likes":{$gte:100,$lt:200}})
14. 分页查询 db.user.find().skip(1).limit(2)
15. 排序查询 关键字段 -1 倒序 1 正序 db.user.find().sort({"likes":-1})
16. 在某个字段上创建索引 -1 倒序 1 正序 db.user.createIndex({"likes":-1}) 也可以创建组合索引
17. 索引相关操作
1、查看集合索引
db.col.getIndexes()
2、查看集合索引大小
db.col.totalIndexSize()
3、删除集合所有索引
db.col.dropIndexes()
4、删除集合指定索引
db.col.dropIndex("索引名称")
18. 聚合分组查询 db.user.aggregate([{$group:{_id:"$by",num:{$sum:1}}}])
19. 保存图片等文件:
@Autowired
GridFsTemplate gridFsTemplate;
// 使用
ObjectId store = gridFsTemplate.store(inputStream, RandomUtil.randomNumbers(4), "jpg");
20. 匹配属性中数组元素的属性: 其中属性value中有数组allInfoType,每个数组中的元素有一个属性为value,寻找value值为abc的文档
db.getCollection("a").find({"value.allInfoType":{$elemMatch:{type:"abc"}}})
21. 分组排序,条件过滤, 按照type分组,取分组的最大值时间createTime,按照count数量倒叙
db.getCollection("111").aggregate([
{
$group: {
_id: "$type",
count: {$sum: 1},
maxTime: {$max: "$createTime"}
}
}, {
$sort: {count: -1}
},{
$match:{_id:/data/}
}
]);
22. 根据集合中的属性过滤,并只查询其中部分字段
db.getCollection("1111").find(
{
metaType: /view/,
"value.viewColumnList": {$elemMatch: {type: "DefaultObjectValue"}},
appCode: {$not: {$regex: /ICPX/}}
},
{
appCode: 1,
"value.viewColumnList.type": 2,
"value.viewColumnList.name": 3,
"value.viewColumnList.objectTypeName": 4,
path: 5
})
// 其中 1 2 3 4 5 分别为要选择的几个字段
Query query = new Query();
query.addCriteria(Criteria.where("metaType").regex("view"));
query.addCriteria(Criteria.where("value.viewColumnList")
.elemMatch(Criteria.where("type").is("DefaultObjectValue")));
query.addCriteria(Criteria.where("appCode").not().regex("ICPX"));
query.fields().include("appCode", "value.viewColumnList.type", "value.viewColumnList.name",
"value.viewColumnList.objectTypeName", "path");
List<Map> maps = mongoTemplate.find(query, Map.class,
"111");
System.out.println(JSONUtil.toJsonPrettyStr(maps));
以上是mongodb一个阶段的学习成果,下次继续~~
本文使用的工具其实很一般,推荐一个最近觉得比较好用的官方工具: mong官方可视化工具windows版本
本文转自 jimolvxing.blog.csdn.net/article/det…,如有侵权,请联系删除。