使用 Java 驱动程序对 MongoDB 聚合查找阶段的结果进行排序
Sort the result of the MongoDB aggregation lookup stage using Java driver
我正在尝试获取 Mongo 到 return 客户 的订单列表。其中 orders 是使用 $lookup
添加到 customer 文档的列表(数组)。
我的大部分工作都在进行中,但我在正确排序订单查找集合时遇到了问题。除了排序之外,它是分开工作的。
我想我可能需要使用 $unwind
,但我发现很难知道如何将其集成到查找中以及需要将其放置在何处。
List<Bson> pipeline
= Arrays.asList(
new Document("$match", new Document("_id", new ObjectId(customerId))),
new Document("$lookup",
new Document("from", "orders")
.append("localField", "_id")
.append("foreignField", "customer_id")
.append("as", "orders")));
我确实查看了 google 和堆栈溢出,但找不到看起来可以解决我遇到的问题的答案。
我想按我加入客户的订单集合中的 date_raised
对订单进行排序。
我不太确定你的数据模型如何。另一方面,这个怎么样?
List<Bson> pipeline
= Arrays.asList(
new Document()
.append("$match", new Document()
.append("_id", new Document("_id", new ObjectId(customerId)))
),
new Document("$lookup",
new Document("from", "orders")
.append("localField", "_id")
.append("foreignField", "customer_id")
.append("as", "orders")));
new Document()
.append("$unwind", new Document()
.append("path", "$date_raised")
),
new Document()
.append("$sort", new Document()
.append("date_raised", 1.0)
)
);
我正在尝试获取 Mongo 到 return 客户 的订单列表。其中 orders 是使用 $lookup
添加到 customer 文档的列表(数组)。
我的大部分工作都在进行中,但我在正确排序订单查找集合时遇到了问题。除了排序之外,它是分开工作的。
我想我可能需要使用 $unwind
,但我发现很难知道如何将其集成到查找中以及需要将其放置在何处。
List<Bson> pipeline
= Arrays.asList(
new Document("$match", new Document("_id", new ObjectId(customerId))),
new Document("$lookup",
new Document("from", "orders")
.append("localField", "_id")
.append("foreignField", "customer_id")
.append("as", "orders")));
我确实查看了 google 和堆栈溢出,但找不到看起来可以解决我遇到的问题的答案。
我想按我加入客户的订单集合中的 date_raised
对订单进行排序。
我不太确定你的数据模型如何。另一方面,这个怎么样?
List<Bson> pipeline
= Arrays.asList(
new Document()
.append("$match", new Document()
.append("_id", new Document("_id", new ObjectId(customerId)))
),
new Document("$lookup",
new Document("from", "orders")
.append("localField", "_id")
.append("foreignField", "customer_id")
.append("as", "orders")));
new Document()
.append("$unwind", new Document()
.append("path", "$date_raised")
),
new Document()
.append("$sort", new Document()
.append("date_raised", 1.0)
)
);