返回介绍

12.1.3 使用 MongoTemplate 访问 MongoDB

发布于 2024-08-17 00:45:49 字数 1883 浏览 0 评论 0 收藏 0

我们已经在配置类中配置了MongoTemplate bean,不管是显式声明还是扩展AbstractMongoConfiguration都能实现相同的效果。接下来,需要做的就是将其注入到使用它的地方:

注意,在这里我们将MongoTemplate注入到一个类型为MongoOperations的属性中。MongoOperations是MongoTemplate所实现的接口,不使用具体实现是一个好的做法,尤其是在注入的时候。

MongoOperations暴露了多个使用MongoDB文档数据库的方法。在这里,我们不可能讨论所有的方法,但是可以看一下最为常用的几个操作,比如计算文档集合中有多少条文档。使用注入的MongoOperations,我们可以得到Order集合并调用count()来得到数量:

现在,假设要保存一个新的Order。为了完成这个任务,我们可以调用save()方法:

save()方法的第一个参数是新创建的Order,第二个参数是要保存的文档存储的名称。

另外,我们还可以调用findById()方法来根据ID查找订单:

对于更高级的查询,我们需要构造Query对象并将其传递给find()方法。例如,要查找所有client域等于“Chuck Wagon”的订单,可以使用如下的代码:

在本例中,用来构造Query对象的Criteria只检查了一个域,但是它也可以用来构造更加有意思的查询。比如,我们想要查询Chuck所有通过Web创建的订单:

如果你想移除某一个文档的话,那么就应该使用remove()方法:

如我前面所述,MongoOperations有多个操作文档数据的方法。我建议你查看一下其JavaDoc文档,以了解通过MongoOperations都能完成什么功能。

通常来讲,我们会将MongoOperations注入到自己设计的Repository类中,并使用它的操作来实现Repository方法。但是,如果你不愿意编写Repository的话,那么Spring Data MongoDB能够自动在运行时生成Repository实现。下面,我们来看一下是如何实现的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文