Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 与sails和mongo建立关系的最佳实践是什么_Mongodb_Sails.js - Fatal编程技术网

Mongodb 与sails和mongo建立关系的最佳实践是什么

Mongodb 与sails和mongo建立关系的最佳实践是什么,mongodb,sails.js,Mongodb,Sails.js,我有这种情况,我想知道在建模数据时,这里的最佳实践是什么 我使用的是Sails和Mongo,从文档中我不太清楚该怎么做 我有用户,用户可以创建供应商,供应商可以创建页面,页面有模板 我的问题是,当我创建一个用户时,我应该用供应商ID填充供应商数组,还是应该只依赖供应商集合中的用户ID引用。同样的逻辑进一步遵循-我的供应商页面应该存储在供应商对象中的pages数组中,还是简单地作为pages对象中的供应商字段 我在使用猫鼬时也遇到了同样的困境,文档也没有说得太清楚: 请参见“儿童参考” 然而,我们

我有这种情况,我想知道在建模数据时,这里的最佳实践是什么

我使用的是Sails和Mongo,从文档中我不太清楚该怎么做

我有用户,用户可以创建供应商,供应商可以创建页面,页面有模板

我的问题是,当我创建一个用户时,我应该用供应商ID填充供应商数组,还是应该只依赖供应商集合中的用户ID引用。同样的逻辑进一步遵循-我的供应商页面应该存储在供应商对象中的pages数组中,还是简单地作为pages对象中的供应商字段

我在使用猫鼬时也遇到了同样的困境,文档也没有说得太清楚: 请参见“儿童参考”

然而,我们可能会发现,如果我们使用aaron对象,我们无法获得 故事清单。这是因为没有任何故事对象 “推”到亚伦身上

这里有两种观点。首先,很高兴有aaron知道 哪些故事是他的

有争议的是,我们真的需要两套指针 失去同步。相反,我们可以跳过填充,直接查找() 我们感兴趣的故事

所以这就是猫鼬说的,我不太清楚如何继续


非常感谢您的帮助。

我不是MongoDB专家,但我同意第二种说法,在您的情况下,只需在供应商模型中提供用户id参考,并在供应商和页面中提供用户id参考

但这取决于您的用例,您是否经常遇到这样的情况:您有一个用户,并且您需要找到用户创建的所有供应商?在这种情况下,时间重要吗?因为用户id解决方案的速度会慢一些(没有缓存),但是正如前面提到的,您不必担心数据完整性,并且会占用更少的空间


希望这能有所帮助。

我认为,数据完整性遭到破坏的可能性比潜在的性能损失更令人头痛。将坚持方法2。由于蓝图的缘故,这也是自动的,太棒了。我有0行服务器代码。
aaron.stories.push(story1);
aaron.save(callback);
Person.findOne({ name: 'Aaron' }) .populate('stories') // only works
if we pushed refs to children .exec(function (err, person) {   if
(err) return handleError(err);   console.log(person); })
Story
.find({ _creator: aaron._id })
.exec(function (err, stories) {
  if (err) return handleError(err);
  console.log('The stories are an array: ', stories);
})