具有冲突路径的 MongoTemplate 无效投影
MongoTemplate invalid projection with conflict path
我正在使用 Spring Data MongoTemplate 来查询文档。
集合中存储的文档结构为
{
id: "string",
metadata: { -- embeded structure},
version: {
metadata: {
version: 1,
-- other fields
},
versionContent: { -- embeded structure --}
}
}
在我的查询中,我只需要一个字段的子集,所以我使用的ProjectionOperation是
Aggregation.project("id", "metadata", "version.metadata");
得到异常:
specification contains two conflicting paths. Cannot specify both 'metadata.version' and 'metadata'
我该怎么办?
最终,我必须指定排除的字段,而不是指定要包含在投影中的字段,如下所示,
Aggregation.project().andExclude("not-needed-field1", "not-needed-field2")
避免“路径冲突”异常。不知道是不是MongoTemplate的bug,还是有一定的原因不允许用户在投影中包含这些路径。
我正在使用 Spring Data MongoTemplate 来查询文档。 集合中存储的文档结构为
{
id: "string",
metadata: { -- embeded structure},
version: {
metadata: {
version: 1,
-- other fields
},
versionContent: { -- embeded structure --}
}
}
在我的查询中,我只需要一个字段的子集,所以我使用的ProjectionOperation是
Aggregation.project("id", "metadata", "version.metadata");
得到异常:
specification contains two conflicting paths. Cannot specify both 'metadata.version' and 'metadata'
我该怎么办?
最终,我必须指定排除的字段,而不是指定要包含在投影中的字段,如下所示,
Aggregation.project().andExclude("not-needed-field1", "not-needed-field2")
避免“路径冲突”异常。不知道是不是MongoTemplate的bug,还是有一定的原因不允许用户在投影中包含这些路径。