簡體   English   中英

MongoDB Java-將查詢轉換為mongodb Java驅動程序

[英]MongoDB Java - Translate query to mongodb Java driver

我有一個奇怪的問題。 我有一個查詢,我確定它可以正常工作,但是當我用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")))));

請看看並告訴我將其翻譯成Java的方式是否錯誤或還有其他問題。

謝謝!

在Java中,您可以嘗試以下操作:

String m = "American";
DBObject eventInfoObject = new BasicDBObject(
  "events.info", 
  java.util.regex.Pattern.compile(m)
);

這會將查詢{ "events.info" : { "$regex" : "American"}}發送給MongoDB服務器{ "events.info" : { "$regex" : "American"}}

在您的代碼中替換:

"/" + word + "/"

與:

java.util.regex.Pattern.compile(word)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM