MongoDB Java-将查询转换为MongoDB Java驱动程序
我有个棘手的问题。我有一个查询,我确信它可以工作,但是当我用Java翻译它时,它不会返回任何东西 MongoDB查询是:MongoDB Java-将查询转换为MongoDB Java驱动程序,java,mongodb,Java,Mongodb,我有个棘手的问题。我有一个查询,我确信它可以工作,但是当我用Java翻译它时,它不会返回任何东西 MongoDB查询是: db.births.aggregate([ { "$match": { "day" : "March_13", "events.year": "1929", "events.info": /American/ } }, { "$unwind": "$
db.births.aggregate([
{
"$match": {
"day" : "March_13",
"events.year": "1929",
"events.info": /American/
}
},
{ "$unwind": "$events" },
{
"$match": {
"day" : "March_13",
"events.year": "1929",
"events.info": /American/
}
},
{
"$group": {
"_id": "$_id",
"day": { "$first": "$day" },
"events": { "$push": "$events" }
}
}
])
Java代码是:
AggregateIterable<Document> result = mongoDatabase.getCollection(category).
aggregate(
Arrays.asList(
new Document("$match",
new Document("day", day).
append("events.year", year).
append("events.info", "/" + word + "/")),
new Document("$unwind", "$events"),
new Document("$match",
new Document("day", day).
append("events.year", year).
append("events.info", "/" + word + "/")),
new Document("$group",
new Document("_id", "$_id").
append("day", new Document("$first", "$day")).
append("events", new Document("$push", "$events")))));
AggregateIterable结果=mongoDatabase.getCollection(类别)。
聚合(
Arrays.asList(
新文档(“$match”,
新文件(“日”,日)。
附加(“events.year”,year)。
附加(“events.info”、““/”+word+“/”)),
新文档(“$unwind”,“$events”),
新文档(“$match”,
新文件(“日”,日)。
附加(“events.year”,year)。
附加(“events.info”、““/”+word+“/”)),
新文档(“$group”,
新文档(“\u id”,“$\u id”)。
附加(“日”,新文档(“$first”,“$day”))。
追加(“事件”,新文档(“$push”,“$events”;”);
请看一看,并告诉我,如果我把它翻译成Java的方式是错误的或有其他东西
谢谢大家! 在Java中,您可以尝试以下方法:
String m = "American";
DBObject eventInfoObject = new BasicDBObject(
"events.info",
java.util.regex.Pattern.compile(m)
);
这将向MongoDB服务器发送查询{“events.info”:{“$regex”:“American”}
在代码中替换:
"/" + word + "/"
与:
java.util.regex.Pattern.compile(word)
“category”Java变量指向“Bartions”MongoDB集合?@zeugor category可以指向出生/死亡/事件/假日,在我测试的内容中,我总是在那里输入出生。我不熟悉MongoDB语法,但您不是在创建“/American/”(字符串类型)而不是没有双引号的/American/-吗?MongoDB查询中的/American/是什么类型?Java上是否有类似的工具?再说一次,如果这没有意义,我很抱歉,我在MongoDB没有经验,只是一个建议/问题。@MichałSchielmann我想你是对的!在实际查询中没有引号,因此不是字符串。谢谢,伙计,我现在就查。@PetruDanielTudosiu在你的MongoDB查询中什么是/American/?是正则表达式吗?