如果存在具有未知键的对象:
{
data: {
someObjectIdStringThatCantBePutInProjection: {
dontReturn: 123,
return: 321
},
someOtherObjectIdStringThatCantBePutInProjection: {
dontReturn: 1234,
return: 4321
}
}
}
我希望MongoDB只返回对象的return
属性,投影看起来会是什么样子?
例如投影
{
data: { **allProperties**: { return: 1 } }
}
应返回:
{
data: {
someObjectIdStringThatCantBePutInProjection: {
return: 321
},
someOtherObjectIdStringThatCantBePutInProjection: {
return: 4321
}
}
}
1条答案
按热度按时间66bbxpm51#
使用动态值作为字段名被认为是一种反模式,会给查询带来不必要的复杂性。不过,您可以通过
$objectToArray
将数据对象转换为k-v元组数组。使用$map
仅获取所需的return
字段。最后,使用$arrayToObject
恢复为原始形式。Mongo Playground