gpt4 book ai didi

node.js - 数据映射的 Mongoose/Mongo 结构

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:08 24 4
gpt4 key购买 nike

enter image description here

您好,我有一些数据,我需要一些帮助来找到用于显示它的正确数据结构。我的目标是拥有一张如上图所示的 map 。不同的物理站点会有经纬度信息,但圆半径将由每个站点的不同统计数据确定。用户将能够选择他们想要查看的数据集。大约有26组数据。只有一组位置。

我的数据如下所示:

地点(约5000个)

var locSchema = mongoose.Schema({
name : 'string',
siteID : 'number',
address1 : 'string',
address2 : 'string',
loc: {type: [Number], index: '2dsphere'}
});

具体数据(约12000条)

var dataSchema = mongoose.Schema({
providerNumber : "number", //The "siteID" of the site.
date : "date",
volume : "number",
cost : "number",
label : "string", //There are 26 different stats each with a different label
siteID : "oid" //The oid of the site
});

我的第一个猜测是它们应该是一个集合,每条数据都存储为数组:

name : 'string',
siteID : 'number',
address1 : 'string',
address2 : 'string',
loc: {type: [Number], index: '2dsphere'},
data : [
{
providerNumber : "number", //The "siteID" of the site.
date : "date",
volume : "number",
cost : "number",
label : "string", //There are 26 different stats each with a different label
siteID : "oid" //The oid of the site
},
...
]

但我不确定如何在 Mongoose 中创建这种数据结构,尤其是对象数组。此外,可能会有多组更新数据需要可视化。

所以我的问题是:1. 该数据的最佳结构是什么?2. 在 Mongoose 中创建它的语法是什么?3. 关于使其可扩展有什么建议吗?

最佳答案

我倾向于使 mongo 中的数据尽可能保持平坦和非规范化。我在更新和维护子文档(尤其是数组)时遇到了问题。我还喜欢根据最常用的方式对数据进行建模。我的偏好是这样的:

var schema = mongoose.Schema({
name: String,
siteID: Number,
address1: String,
address2: String
loc: { type: [Number], index: '2dsphere' }
date: Date,
volume: Number,
cost: Number,
label: String
});

这意味着您将有一些重复的数据(名称、地址1等),但我认为如果您对 dataSchema 部分的操作多于对 locSchema 的操作,那么这是值得的。现在添加/删除/更新数据变得更加简单。您可以使用mongo aggregation按照您的意愿对数据进行分组和结构化。

关于node.js - 数据映射的 Mongoose/Mongo 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25728189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com