MongoDB:特定类型的仅项目字段
MongoDB中是否有一种方法可以投影文档中具有特定类型的所有字段 例如,如果我有以下文档:MongoDB:特定类型的仅项目字段,mongodb,types,projection,Mongodb,Types,Projection,MongoDB中是否有一种方法可以投影文档中具有特定类型的所有字段 例如,如果我有以下文档: { _id:5dde4c55c6c36b3bb4f5ad30, 姓名:“彼得”, 年龄:45,, 部门:“营销” } 我想说:只返回类型为string的字段。这样我就可以得到: { _id:5dde4c55c6c36b3bb4f5ad30, 姓名:“彼得”, 部门:“营销” } 您可以使用检查字段类型 $reduce使用$objectToArray 如果字段值类型为string,则检查条件,然后使用
{
_id:5dde4c55c6c36b3bb4f5ad30,
姓名:“彼得”,
年龄:45,,
部门:“营销”
}
我想说:只返回类型为string
的字段。这样我就可以得到:
{
_id:5dde4c55c6c36b3bb4f5ad30,
姓名:“彼得”,
部门:“营销”
}
您可以使用检查字段类型
使用$reduce
$objectToArray
- 如果字段值类型为
,则检查条件,然后使用initialValue进行concat并返回string
- 返回值将是数组,我们需要使用
$arrayToObject
将根目录替换为新返回的对象$replaceWith
db.collection.aggregate([
{
$replaceWith: {
$arrayToObject: {
$reduce: {
input: { $objectToArray: "$$ROOT" },
initialValue: [],
in: {
$concatArrays: [
"$$value",
{
$cond: [
{ $eq: [{ $type: "$$this.v" }, "string"] },
["$$this"],
[]
]
}
]
}
}
}
}
}
])