Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB Java-将查询转换为MongoDB Java驱动程序_Java_Mongodb - Fatal编程技术网

MongoDB Java-将查询转换为MongoDB Java驱动程序

MongoDB Java-将查询转换为MongoDB Java驱动程序,java,mongodb,Java,Mongodb,我有个棘手的问题。我有一个查询,我确信它可以工作,但是当我用Java翻译它时,它不会返回任何东西 MongoDB查询是: db.births.aggregate([ { "$match": { "day" : "March_13", "events.year": "1929", "events.info": /American/ } }, { "$unwind": "$

我有个棘手的问题。我有一个查询,我确信它可以工作,但是当我用Java翻译它时,它不会返回任何东西

MongoDB查询是:

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/?是正则表达式吗?