У меня есть документ MongoDB, подобный этому примеру:
{
"_id" : "A",
"articleNumber" : "0123456",
"shopDependentProperties" :
{
"shop" : "DE",
"foo" : "foo",
"bar" : "bar"
}
}
и хотите вытащить свойства shopDependentProperties, чтобы получить следующий результат
{
"_id" : "A",
"articleNumber" : "0123456",
"foo" : "foo",
"bar" : "bar"
}
В MongoDB Shell я могу решить это следующим образом:
db.test.aggregate(
[
{
$project:
{
_id : "$_id",
articleNumber : "$articleNumber",
foo:"$shopDependentProperties.foo",
bar:"$shopDependentProperties.bar"
}
}
]
)
Но: в Spring Data MongoDB я не могу извлечь содержимое встроенного документа. Перепробовал много комбинаций, ничего не помогло. Например:
ProjectionOperation projection = Aggregation.project("_id");
projection.andExpression("shopDependentProperties.foo").as("foo");
projection.andExpression("shopDependentProperties.bar").as("bar");
System.out.println(projection.toDBObject(Aggregation.DEFAULT_CONTEXT));
проигнорирует материал shopDependentProperties.shop и просто распечатает
{ "$project" : { "_id" : 1}}
Какие-либо предложения?
Спасибо