Javascript mongodb中链接文档的语法
如果用户集合中有两个对象:Javascript mongodb中链接文档的语法,javascript,mongodb,bson,Javascript,Mongodb,Bson,如果用户集合中有两个对象: {_id: 1, name: 'foo', workItems: []} {_id: 2, name: 'bar', workItems: []} 如何将指向workItem集合中对象的链接添加到每个用户的workItems数组中 我理解直接嵌入,但一些工作项将分配给多个用户,所以我不想重复数据。我已经看过了,但是我找不到任何链接的例子 您可以执行如下DBRef: { $ref : <name of collection where reference is&
{_id: 1, name: 'foo', workItems: []}
{_id: 2, name: 'bar', workItems: []}
如何将指向workItem集合中对象的链接添加到每个用户的workItems数组中
我理解直接嵌入,但一些工作项将分配给多个用户,所以我不想重复数据。我已经看过了,但是我找不到任何链接的例子 您可以执行如下DBRef:
{ $ref : <name of collection where reference is>, $id : <_id of document>, $db : <optional argument for specifying the databse the document is at> }
{_id: 1, name: 'foo', workItems: {$ref: "blarg", $id: "1"}}
您可以这样做DBRef:
{ $ref : <name of collection where reference is>, $id : <_id of document>, $db : <optional argument for specifying the databse the document is at> }
{_id: 1, name: 'foo', workItems: {$ref: "blarg", $id: "1"}}
有时候,最好是复制数据。MongoDB是一个非关系数据库。有些方法在关系数据库中是不好的,但在非关系数据库中是适用的。尽管有明显的共同点,但这确实不是相同的思维方式 在我的工作中,我们在生产中使用它,并发现读取操作复制数据更容易、更快。这正是MongoDB的力量所在。 当然,当修改工作项时,这需要应用程序更新它出现的所有位置。。。对于写密集型系统,这可能不是一个好的解决方案
另一点是,引擎不会处理关节,因此您必须至少发出第二个请求。然后,您必须在应用程序端手动执行连接。无论哪种方式,您都必须将逻辑从数据库移动到客户机应用程序。有时复制数据会更好。MongoDB是一个非关系数据库。有些方法在关系数据库中是不好的,但在非关系数据库中是适用的。尽管有明显的共同点,但这确实不是相同的思维方式 在我的工作中,我们在生产中使用它,并发现读取操作复制数据更容易、更快。这正是MongoDB的力量所在。 当然,当修改工作项时,这需要应用程序更新它出现的所有位置。。。对于写密集型系统,这可能不是一个好的解决方案
另一点是,引擎不会处理关节,因此您必须至少发出第二个请求。然后,您必须在应用程序端手动执行连接。无论哪种方式,您都必须将逻辑从数据库移动到客户端应用程序。或者,您可以只在数组中存储每个工作项的_id或其他唯一标识符-链接可以是“逻辑的”。确切地说,为了澄清Aysa的答案,你只需提出多个问题。正如jtlebi所说,不管怎样,你都必须提出两个问题,你最好让它可读。谢谢,这正是我想要的,这很有意义,我试图想出一些“神奇”的方式来链接数据,而不仅仅是指定集合和文档id。多亏了其他注释和jtlebi的回答,这也是一个很好的答案。或者,你可以只存储数组中每个工作项的"id或其他唯一标识符-链接可以是“逻辑的”.确切地说,为了澄清Aysa的答案,你可以提出多个问题。正如jtlebi所说的-你必须提出两个问题,不管怎样,你都可以让它可读。谢谢,这就是我想要的,这是有意义的,我试图想出一些“神奇”的方式来链接数据,而不仅仅是指定集合和文档id。感谢其他评论和jtlebi的回答,这也是一个很好的答案。