MongoDB Java 操作技巧总结

2020-06-08 10:56:56 浏览数 (1)

MongoDB 是一个基于分布式文件存储的文档型数据库,使用过MongoDB的同学相信很难不被他的特性所吸引。MongoDB 中许多名词和我们常用的关系型数据库不太一致:

对比

作为一个数据库,最基本的功能就是CRUD:

增:db.collection.insertOne(Document)

insert

改:db.collection.updateOne(Bson filter,Bson update)

update

新增或修改:collection.replaceOne(filter, update, new UpdateOptions().upsert(true))

upsert

删除:collection.deleteOne(filter)/collection.deleteMany(filter);

delete

查询:db.collection.find(query, projection)

相比于上面的几种操作,查询就会显得更有技巧。

  • query :可选,使用查询操作符指定查询条件
  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

db.col.find().pretty()

如果你只想要查询一条数据,还可以使用findOne() 方法,它只返回一个文档。

查询的关键在于怎么去灵活的构建query对象。

通过id查询一条记录:

queryOne

如果有多个条件,则继续put条件进filter:

query

聚合操作:MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。

aggregate

像这种稍微有点复杂的sql要在Mongodb中实现就会显得比较复杂了:select sum(*) from (select deCode from tb group by Decode) t1

aggregate

当然如果你只是单纯的想要查询一个总数,那也有简单的方法:collection.count(cnd);

count

有了以上的这些方法,基本上能完成日常工作中的任务了。

0 人点赞