#mongodb
#mongodb
Вопрос:
Мои данные в 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" } }});
Но я всегда не получал данных после фильтрации. Не знаю, почему.
Комментарии:
1. Похоже, что элемент внутри массива представляет собой строку JSON. Запрос предоставит ожидаемый результат только в том случае, если это объект JSON
2. Я использую Java Framework spring-boot-starter-data-mongodb для вставки данных в MongoDB. Элемент внутри массива сопоставляется классу. Возможно, это строка JSON. Хорошо, как я могу его отфильтровать?
Ответ №1:
Попробуйте это-
db.collection.aggregate({
"$match": {
"transactionDataList.lastname": "Mustermann"
}
})
Комментарии:
1. Это не работает. Я думаю, что элемент внутри массива представляет собой строку JSON.
2. да, я использую java framework spring-boot-starter-data-mongodb для вставки данных в mongodb