mongodb - Mongo 查找加入子/子对象?
问题描述
我正在加入预订和客户收藏。我的预订对象如下所示:
{
"bookingID": 1,
"customerID": "adam.apple@email.com",
"room": [
{
"roomID": "JDS",
"numRooms": 1
}
]
}
和这样的客户对象:
{
"customer": {
"firstname": "Adam",
"surname": "Apple",
"title": "Nr.",
"emailAddress": "adam.apple@email.com"
},
"address": {
"street": "221B Baker St",
"city": "London",
"state": null,
"zipcode": "NW1 6XE",
"country": "UK"
}
}
我正在使用这段代码:
{ $lookup: {from: 'customers', localField: 'customerID', foreignField: 'customer.emailAddress', as: 'traveller'} },
{ $unwind: '$traveller' },
{ $project: {'traveller': {_id: 0, 'address': 0}} }
组合输出。我想得到:
"traveller": {
"firstname": "Adam",
"surname": "Apple",
"title": "Nr.",
"emailAddress": "adam.apple@email.com"
}
我得到:
"traveller": {
"customer": {
"firstname": "Adam",
"surname": "Apple",
"title": "Nr.",
"emailAddress": "adam.apple@email.com"
}
}
我该怎么做呢?
解决方案
干得好 :-
只需更改项目阶段如下 -
{
$project: {
"traveller": "$traveller.customer",
"bookingID": 1,
"cruise": 1,
"customerID": 1,
"room": 1
}
}
推荐阅读
- c# - 使用 BaseAdapter 到 Listview.Adapter 的 JSON 内容对象
- algorithm - 有多少数字同时被响铃和交叉?
- apache-spark - 纱线客户端:用户类抛出异常:java.lang.NoClassDefFoundError:org/apache/spark/sql/DataFrame
- python - 如何取消挂起的 wait_for
- c# - [Computed] 和 [Write(false)] 属性有什么区别?
- entity-framework - EF Core 2.1 在 Sum complex 和 Grouping 时在本地进行评估
- excel - 如何根据来自更多列的信息对 Excel 数据透视行进行排序
- vba - 将 Outlook 升级到 64 位,VBA 代码不再有效
- powershell - powershell脚本中变量的长度
- javascript - 使用 Moment.js 只获取未来的日子