使用MongoTemplate之前最好熟悉下mongo的基本语法。个人用mongo时间也不长,还没到熟练的阶段,有什么问题希望提出来,大家一起学习进步!
这篇就到这里,后面有空再补充其他的。
关于Mongodb + java + 多表关联查询(MongoTemplate)自己关于使用MongoTemplate的一点总结1.创建集合// 物料db.material.insert([ { "_id" : "M00001", "name" : "油漆", "price" : 12}, { "_id" : "M00002", "name" : "地板装", "price" : 20 }, { "_id" : "M00003", "name": "水泥", "price":
本文实例讲述了MongoDB多表关联查询操作。分享给大家供大家参考,具体如下:
Mongoose的多表关联查询
首先,我们回忆一下,MySQL多表关联查询的语句:
student表:
calss表:
通过student的classId关联进行查询学生名称,班级的数据:
SELECT student.name,student.age,class.name FROM student,class WHERE student.classId = class.id
Mongoose多表联合查询(还是以众所周知的学生、班级作为实例)
· 表结构的定义(schemas目录下)
1. student表(s
在做自己的项目时,因为刚开始接触mongodb非关系型数据库以及关系型数据库的影响还是留在脑中,总会想着进行一个连表查询,然后看官网和资料学习了下,还有那个查询时使用正则来匹配,在这里做个记录
1.mongodb正则匹配
/* 使用$regex字段匹配 */
name: {$regex: 'aa', $options: 'i'};
name: {$regex: /aa/, $options: 'i'};
name: {$regex: /aa/i};
/* 直接使用表达式 */
name: {/aa/i}
/* 使用$in来匹配,这个字段必须是一个数组 */
【mongoDB】 学习(三)java + mongodb 多表联合查询
mongoDB、Java、$lookup、 $project、 $match 等
1、先介绍这次使用的 mongoDB 内的方法以及使用方式(Robo 3T 1.3.1)
mongoDB 官网
https://docs.mongodb.com/manual/reference/operator/aggregation/project/index.html
(1)$lookup
类似SQL server里面的 join
@Document("Schedule")
@Accessors(chain = true)
public class Schedule extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "医院编号")
@Indexed //.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
二、自定义配置MongoTemplate
@Configuration
public class MongodbConfig {
@Value("${s
在 Java 中使用 MongoDB 进行多表关联查询可以通过使用 MongoDB 的聚合管道(Aggregation Pipeline)来实现。聚合管道是一系列操作步骤,可以将多个表的数据进行关联和处理。
下面是一个示例代码,展示了如何在 Java 中使用 MongoDB 的聚合管道进行多表关联查询:
```java
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.model.Aggregates;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.LookupOperation;
import org.bson.Document;
public class Main {
public static void main(String[] args) {
// 连接 MongoDB
try (MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017")) {
MongoCollection<Document> ordersCollection = mongoClient.getDatabase("mydb").getCollection("orders");
MongoCollection<Document> customersCollection = mongoClient.getDatabase("mydb").getCollection("customers");
// 定义聚合管道操作
LookupOperation lookupOperation = LookupOperation
.from("customers", "customerId", "_id", "customerInfo");
// 构建聚合管道
AggregateIterable<Document> result = ordersCollection.aggregate(Arrays.asList(
Aggregates.match(Filters.eq("status", "completed")),
lookupOperation
// 遍历查询结果
for (Document document : result) {
System.out.println(document);
上述示例代码中,我们假设有两个集合:`orders` 和 `customers`。`orders` 集合中的每个文档包含一个 `customerId` 字段,该字段与 `customers` 集合中的 `_id` 字段关联。我们使用 `LookupOperation` 来进行关联查询,并使用 `match` 操作来过滤出状态为 "completed" 的订单。
请注意,这只是一个简单的示例,实际的多表关联查询可能需要更复杂的聚合管道操作来满足特定的需求。你可以根据自己的实际情况进行相应的调整和扩展。
希望能帮助到你!如果有更多问题,请随时提问。