【发布时间】:2021-03-27 23:28:08
【问题描述】:
如何在以下示例中重新映射内部文档:
db.customers.aggregate(
[
{
$project: {
"_id": 0,
"First Name": "customerDetails.firstName",
"Last Name": "customerDetails.lastName",
"Full Name": { $concat : [ "customerDetails.firstName", " ", "customerDetails.lastName" ] }
}
}
]
)
像这样 "$customer.firstName" 放置 $ 不起作用,而不是取内部字段 firstName 的值,基本上它不会返回任何内容.
customer集合的结构示例:
{
"_id" : ObjectId("5fb3c41454742e0d3c9f7605"),
"customerDetails" : {
"firstName" : "Robert",
"lastName" : "Green",
"phoneNumber" : "0878712375",
"email" : "robert.green@gmail.com"
}
}
预期结果:
{
"First Name": "Robert",
"Last Name": "Green",
"Full Name": "Robert Green"
}
实际结果:
{
"First Name": "customerDetails.firstName",
"Last Name": "customerDetails.lastName",
"Full Name": "customerDetails.firstName customerDetails.lastName"
}
【问题讨论】:
-
如果你能提供你的文件样本以及当前和预期的输出将会很棒:)
-
“不起作用”是什么意思?
-
如果字段被称为
customer**Details**当然$customer.firstName不起作用