【发布时间】:2017-12-06 14:35:46
【问题描述】:
我想通过以下方式使用 Mongo 进行条件查找:根文档包含指向 customers 集合的链接 (customerId) 或直接嵌入客户,如下所示:
{
"_id" : 1,
"item": "item1",
"customer": { _id: 1, "name": "Jane Doe" }
},
{
"_id": 2,
"item": "item2",
"customerId": 1
}
客户集合:
{ _id: 1, "name": "Jane Johnson" }
customers 集合存储客户的当前版本;为了保持一致性,items 集合的成员将只包含客户的 ID。但是,如果我想冻结一个项目以便它在某个时间保存其客户的 版本,我会将 customer 直接嵌入到相关的 item 中。
在搜索items 时,我希望它们统一显示(即无论是查找客户还是嵌入客户,它都会显示为嵌入字段):
例如
[{
"_id" : 1,
"item": "item1",
"customer": { _id: 1, "name": "Jane Doe" } // historical version of Jane (embedded)
},
{
"_id": 2,
"item": "item2",
"customer": { _id: 1, "name": "Jane Johnson" } // current version of Jane by lookup
}]
问题 1:这是正确的方法吗?如果不是,处理此类案件的最佳做法是什么? 问题2:如果我的方法是正确的,如何最好地使用聚合框架来实现这一点? 谢谢!
【问题讨论】: