有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在MongoDB中查找子文档的java查询

好的,我有一个简单的问题。我在MongoDB中有一个简单的文档,其中包含一个名为“惩罚”的子文档。 现在,我想通过子文档(“惩罚”)中的字符串来查找文档(此处带有_id“Cammeritz”),例如“penaltyid=0f77d885-6597-3f47-afb1-0cee2ea3ece1”。你能帮帮我吗?最好是对Java进行解释,但如果您只是帮助处理一个普通的MongoDB查询,也没关系

{
    "_id" : "Cammeritz",
    "penalties" : [ 
        {
            "_id" : null,
            "date" : ISODate("2017-09-25T20:01:23.582Z"),
            "penaltyid" : "0f77d885-6597-3f47-afb1-0cee2ea3ece1",
            "reason" : "Hacking",
            "teammember" : "Luis",
            "type" : "ban"
        }, 
        {
            "_id" : null,
            "date" : ISODate("2017-09-25T20:01:23.594Z"),
            "penaltyid" : "7f5411b0-e66a-33b3-ac4f-4f3159aa88a9",
            "reason" : "Spam",
            "teammember" : "BluingFX",
            "type" : "kick"
        }
    ],
    "isBanned" : true,
    "isMuted" : false
}

共 (1) 个答案

  1. # 1 楼答案

    哎呀,我误解了你的问题。你需要使用点符号db.collection.find( { penalties.penaltyid: '0f77d885-6597-3f47-afb1-0cee2ea3ece1' } )有关更多信息,请参见Query on a Nested Field


    原始答案:

    db.collection.find( { penalties: "0f77d885-6597-3f47-afb1-0cee2ea3ece1" } )应该有效。更多信息请参见mongodb文档中的Query an Array for an Element。我对Java不太熟悉,所以在那里帮不了什么忙