Mongodb 我是否应该将子文档存储在单独的集合中
我构建了一些猫鼬模式,其父子结构并不太复杂。当我创建父对象时,我会包含一个JSON数组,这些JSON与子模式匹配,子文档可以创建,但不会出现在mongodb中的单独子集合中 但是,如果我以后再附加一些子对象,那么这些子对象确实会出现在mongodb中的单独子集合中,父对象中有一个重复/引用(我使用Model.create创建它们,因为我需要访问它们的ObjectId) 由于我是NoSQL的新手,我不确定我是否还应该尝试保留一个单独的子文档集合。只有我的一些孩子出现在单独的收藏中会有什么负面影响 最小样本代码 导致土族聚居 导致Arrs收集Mongodb 我是否应该将子文档存储在单独的集合中,mongodb,mongoose,normalization,nosql,Mongodb,Mongoose,Normalization,Nosql,我构建了一些猫鼬模式,其父子结构并不太复杂。当我创建父对象时,我会包含一个JSON数组,这些JSON与子模式匹配,子文档可以创建,但不会出现在mongodb中的单独子集合中 但是,如果我以后再附加一些子对象,那么这些子对象确实会出现在mongodb中的单独子集合中,父对象中有一个重复/引用(我使用Model.create创建它们,因为我需要访问它们的ObjectId) 由于我是NoSQL的新手,我不确定我是否还应该尝试保留一个单独的子文档集合。只有我的一些孩子出现在单独的收藏中会有什么负面影响
调用Arrangement.create()在第二个集合中创建文档。我假设您只需要Tune集合中的子文档数组。见: 你应该做:
newTune.arrangements.push({
abc: 'abc4'
});
newTune.save();
这听起来像是一个意想不到的结果。您能在这里发布一些完整的、可运行的、最少的示例代码来重现问题,以便我们能够帮助诊断吗?@A.JesseJiryuDavis附带了示例。我应该在我使用mongoose Too的原始帖子中提到,当我有另一种类型的
parent2
的文档也需要参考安排时,该怎么办。在这种情况下,我是否应该保留一个单独的安排集合,并仅使用objectId从父母那里引用?在这种情况下,是的-如果您有两种文件引用第三种,那么将它们分开可能是有意义的。请参见此处关于“嵌入”和“引用”的讨论:或者:
{ "__v": NumberInt(2), "_id": ObjectId("511037ef60e5af0000000002"), "arrangements": {
"0": {
"abc": "abc1",
"_id": ObjectId("511037ef60e5af0000000003")
},
"1": {
"_id": ObjectId("511037ef60e5af0000000004"),
"abc": "abc2"
} }, "name": "test" }
{
"abc": "abc2",
"_id": ObjectId("511037ef60e5af0000000004"),
"__v": NumberInt(0)
}
newTune.arrangements.push({
abc: 'abc4'
});
newTune.save();