我对Mongo DB比较新,但我发现它与我正在处理的项目很好地融合。我目前陷入了一个问题,但我真的很难解决......
这特别与mongo db"手册"参考资料,记录在此处:http://docs.mongodb.org/manual/reference/database-references/#document-references
我正在处理的项目将每个文档视为可重用的对象实例,这意味着它可以嵌入到另一个文档中,并且因为我使用手动引用和客户端来解析引用,它工作得很好。当我希望能够根据其中一个子对象的值找到对象时,会出现问题。
可能的情况:
order.products
是一个引用数组(不是嵌入对象) ),最有效的方法是什么?最理想的解决方案是能够简单地使用order.products.name : 'foo-bar'
一些补充说明:
我已经简要介绍了在mongo的服务器端编写自定义函数的能力,但我不能确定这是否是一种潜在的方法?
答案 0 :(得分:1)
似乎您想使用连接(来自SQL的术语)。 Mongodb不支持连接或替代技术。
这里可以使用的最简单的事情是两步查询(伪代码)
product_ids = db.products.find(name: 'foo-bar').only('id')
orders = db.orders.find(product_id: {$in: product_ids})
这样您就不会将一堆产品对象下载到客户端,只会下载其ID。它在我的应用程序中对我很有用。
但是,当然,真正的关系数据库可以更好地处理这项任务。