【问题标题】:I want to fetch specific array element record from array in mongodb document using MongoDB java api [duplicate]我想使用MongoDB java api从mongodb文档中的数组中获取特定的数组元素记录[重复]
【发布时间】:2015-01-05 14:47:55
【问题描述】:

我有一个包含多个数组元素的文档。 我想从数组中找到一些特定的值。

{
    "_id" : ObjectId("54a67aa569f2bc6a5865f220"),       
    "language" : "us_english",
    "country" : "united states",
    "state" : "texas",
    "words" : [ 
        {

            "handle" : "gm",
            "replacement" : "good morning",

        }, 
        {

            "handle" : "ilu",
            "replacement" : "i love you",

        }
    ]
}

我想找到replacement 的值,其中handle is gmlanguage is englishcountry is united statesstate is texas

我尝试了很多解决方案,但我无法从文档中找到具体的价值。

有什么办法吗??

【问题讨论】:

    标签: java arrays mongodb mongodb-query


    【解决方案1】:

    你可以使用聚合操作。

    • $match过滤文件
    • $unwind 解构 words 字段
    • 重用$match 来查找replacement 字段的值

      db.collection.aggregate([{$match : {language : 'us_english', country: 'united states', state: 'texas'}}, {$unwind: '$words'}, {$match: {"words.handle" : "gm"}}])
      
      { "_id" : ObjectId("54a67aa569f2bc6a5865f220"), "language" : "us_english", "country" : "united states", "state" : "texas", "words" : { "handle" : "gm", "replacement" : "good morning" } }
      

    【讨论】:

    • 您好@Styvane,感谢您的回复。但我想要这个使用 MongoDB java API 的解决方案。
    猜你喜欢
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    相关资源
    最近更新 更多