node.js - MongoDB:创建一个单独的集合/模式,其中每个项目都是一个数组,而不是一个对象
问题描述
我是数据库和 mongodb 的新手。我有收藏品Song
和Line
. Line
代表歌曲歌词中的一行。到目前为止,我将这些行嵌入到Song
:
1:嵌入式(以及我希望它的外观)
{
title: 'This Charming Man',
pages: 300,
lines: [
{ content: 'I would go out tonight', ... },
{ content: 'but I haven't got a stitch to wear', ...}
]
}
现在我想将这些行移到他们自己的收藏中并引用它们。我知道如何引用objects,所以我现在以这种方式实现它:
const lyricsSchema = new Schema({
lines: { type: [LineSchema], default: [] },
});
在我的Song
架构中:
lyrics: {
type: Schema.Types.ObjectId,
ref: 'Lyrics',
},
但是:
这确实有效,但是我现在查询时在我的 Song 对象和我的线阵列之间有一个额外的层,因为现在我的Lyrics
Object 包含该lines
数组(这是完全预期的):
2:现在的样子,带有歌曲模式和歌词模式
{
title: 'This Charming Man',
pages: 300,
lyrics: {
lines: [
{ content: 'I would go out tonight', ... },
{ content: 'but I haven't got a stitch to wear', ...}
}
]
}
如何将其lines
移至单独的集合中,但最终结果看起来像1)?(我最初拥有的,当它仍然嵌入时)。我想将 mylines
变成一个单独的集合,它不包含数组,而是一个数组。
解决方案
推荐阅读
- database - What's the efficient way to upload data using pdf format?
- google-play - Playstore 上的发布状态被拒绝。资格问题。应用程序不符合反短信网络钓鱼用例标准
- tensorflow - 如何使用 inception/mobilenet 模型设置 tfserving 以进行图像分类?
- r - 如何使用 R 和 dplyr 将列名粘贴为查找值
- python - 编码过程时脚本被杀死
- javascript - 如何将光标放在 IE 文本输入元素中的文本末尾
- google-apps-script - 需要有关 GoogleScript 上的 Onedit 功能的帮助(电子表格)
- android-layout - 如何从图像视图中心水平图像视图
- awk - awk 数组以意外的顺序打印元素
- python - 如何在 Pandas 中按列而不是按行对值进行排序?