У меня есть следующие документы MondoDB в коллекции match, созданной Spring's MongoRepository:
[
{
"_id" : ObjectId("123"),
"scores" : {
"11111" : 2,
"22222" : 0
},
"playerOne" : {
"$ref" : "player",
"$id" : ObjectId("11111")
},
"playerTwo" : {
"$ref" : "player",
"$id" : ObjectId("22222")
}
},
{
"_id" : ObjectId("456"),
"scores" : {
"11111" : 3,
"33333" : 1
},
"playerOne" : {
"$ref" : "player",
"$id" : ObjectId("11111")
},
"playerTwo" : {
"$ref" : "player",
"$id" : ObjectId("33333")
}
},
{
"_id" : ObjectId("789"),
"scores" : {
"44444" : 4,
"11111" : 2
},
"playerOne" : {
"$ref" : "player",
"$id" : ObjectId("44444")
},
"playerTwo" : {
"$ref" : "player",
"$id" : ObjectId("11111")
}
}
]
Документы содержат результаты матчей двух игроков. В свойстве score хранятся результаты игрока, где key - это идентификатор игрока, а значение - это количество игроков.
Я хотел бы получить все матчи по id игрока (например, id: 11111 ), где этот игрок победитель , поэтому его счет больше противник.
У вас есть идеи, как написать запрос для этого? Я хочу избежать редизайна документа, но если это единственный способ написать правильный запрос, продолжайте.