【发布时间】:2014-02-24 17:47:56
【问题描述】:
Mongoose 似乎不支持 Mongo DBRefs。显然他们发布了“DBRef”支持,但它实际上只是简单的引用(无法引用来自不同集合的文档)。我终于设法制作了一个模式,它允许我保存一组 ObjectID 引用并填充它们,这对于我的模式的某些部分非常有用,但是如果我可以使用适当的 DBRefs 创建一个数组,那将非常方便让我参考一些集合中的文档。
幸运的是(?)有一个模块可以将 DBRef 支持猴子修补到猫鼬中:https://github.com/goulash1971/mongoose-dbref
不幸的是,我无法理解这些文件。我能说的最好的就是无法在数组中使用 DBRefs(有一个“获取”方法可以取消引用,但它需要一个 dbref); 'populate' 似乎没有被修补以填充 DBRefs,而且我不知道我应该如何分配给定源文档 [collection.items.push(?? ???)]。
从互联网上,我似乎可以分配一个形式为 { $id: document._id, $ref: 'Collection' } 的对象——在记录结果时,它似乎已“采用”为 DBRef数据类型,但我不确定这是否正确,因为我似乎无法用它做任何有用的事情(将 ref 转回文档)。
我真正想要的是一种表示多个集合中项目的有序列表的方法;我对此的任何解决方案都很好,但到目前为止 DBRefs 是我所拥有的最好的。帮忙?
【问题讨论】:
-
DBRefs 在 Mongoose 中没有用。它们没有增加任何价值,因为它们只是有关与它们关联的标识符的元数据。 MongoDB 没有以任何有意义的方式使用它们。
-
如果可能,您可能需要考虑将数据拆分为多个数组并依赖
ref,这样您就可以使用populate。 -
我确实考虑过,但这让订购变得困难。本质上,我有需要存储的内容块。有些块的结构与其他块不同,因此它们有自己的模式。我发现你可以在 Mongoose 的一个集合中拥有多个模型,但我不能将集合用作参考,只有一个模型:(
-
你为什么选择 MongoDb?
-
这是我使用的基本系统。与其弄清楚如何使用它,不如把它撕掉。
标签: node.js mongodb mongoose schema data-modeling