Mongodb 如何在数组中筛选查询?

Mongodb 如何在数组中筛选查询?,mongodb,Mongodb,我在MongoDB中的数据: { "_id" : NumberLong(411694285), "transactionDataList" : [ "{\"key\":\"6b8020acd2fdf393e67459dcb5d241cd2\",\"txaction\":\"appoint\",\"portalid\"

我在MongoDB中的数据:

{
    "_id" : NumberLong(411694285),
    "transactionDataList" : [ 
        "{\"key\":\"6b8020acd2fdf393e67459dcb5d241cd2\",\"txaction\":\"appoint\",\"portalid\":\"2027601\",\"aid\":\"2344\",\"clearingtype\":\"sb\",\"notify_version\":\"7.4\",\"txtime\":\"32414\",\"currency\":\"EUR\",\"userid\":\"2324035\",\"accessname\":\"\",\"accesscode\":\"\",\"param\":\"cohort-496666-0-0-12\",\"mode\":\"live\",\"price\":\"169.95\",\"id\":{\"1\":\"Tei\"},\"pr\":{\"1\":\"169.95\"},\"no\":{\"1\":\"1\"},\"de\":{\"1\":\"Te 12 Monate\"},\"ti\":{\"1\":\"Te12 Monate\"},\"va\":{\"1\":\"19.00\"},\"txid\":\"4132432285\",\"reference\":\"4906-65a84dsdf3\",\"sequencenumber\":\"1\",\"company\":\"\",\"firstname\":\"Max\",\"lastname\":\"Mustermann\",\"street\":\"Weg 37\",\"zip\":\"33333\",\"city\":\"Moll",\"email\":\"muster@gmail.de\",\"country\":\"DE\",\"customerid\":\"2342\",\"balance\":\"0\",\"receivable\":\"111.95\"}"
    ],
    "_class" : "de.xxxx.creatinginvoice.model.TransactionModel"
}
我想在MongoDB中过滤我的数据。比如:

db.getCollection('transaction').find({"transactionDataList":{$elemMatch: { "lastname":"Mustermann" } }});
但过滤后我总是没有得到任何数据。不知道为什么。

试试这个-

db.collection.aggregate({
  "$match": {
    "transactionDataList.lastname": "Mustermann"
  }
})

看起来数组中的元素是一个JSON字符串。如果查询是一个JSON objectI am,使用Java框架spring boot starter数据mongodb将数据插入mongodb,那么查询将只提供预期的输出。数组中的元素映射到类。可能是JSON字符串。好的,我如何过滤它?它不工作。我认为数组中的元素是JSON字符串。是的,我使用java framework spring boot starter data mongodb将数据插入mongodb中