如何在吗啡中为过滤器编写查询
How to write query in morphia for filters
如何将以下mongo查询转换为吗啡查询。
db.sales.aggregate([
{
$project: {
items: {
$filter: {
input: "$items",
as: "item",
cond: { $gte: [ "$$item.price", 100 ] }
}
}
}
}
])
我相信 Morphia 和 official Java driver 都还不支持通过辅助函数的 $filter。但你可以这样做:
AggregateIterable<Document> output = collection.aggregate(Arrays.asList(
new Document("$project", new Document("_id", 0)
.append("items", new Document("$filter",
new Document("input", "$items")
.append("as", "item")
.append("cond", new Document("$gte", Arrays.asList("$$item.price", 100)))
))),
new Document("$unwind", "$items")
));
// Print for demo
for (Document dbObject : output) {
System.out.println(dbObject);
}
由于 Morphia 需要 Java 驱动程序,因此所有这些 类 应该已经在 com.mongodb
包中可用。
如何将以下mongo查询转换为吗啡查询。
db.sales.aggregate([
{
$project: {
items: {
$filter: {
input: "$items",
as: "item",
cond: { $gte: [ "$$item.price", 100 ] }
}
}
}
}
])
我相信 Morphia 和 official Java driver 都还不支持通过辅助函数的 $filter。但你可以这样做:
AggregateIterable<Document> output = collection.aggregate(Arrays.asList(
new Document("$project", new Document("_id", 0)
.append("items", new Document("$filter",
new Document("input", "$items")
.append("as", "item")
.append("cond", new Document("$gte", Arrays.asList("$$item.price", 100)))
))),
new Document("$unwind", "$items")
));
// Print for demo
for (Document dbObject : output) {
System.out.println(dbObject);
}
由于 Morphia 需要 Java 驱动程序,因此所有这些 类 应该已经在 com.mongodb
包中可用。