开始学习MongoDB +node.js。 为了练习,我想创建收集数据并绘制图表的webapp。 但是我在选择MongoDB数据库数据模型时遇到了很大的问题。

现在它是如何工作的,但是我认为它的结构不好。

我的服务每小时获取一次来自API的所有数据,并将其收集在“帐户”集合中。

主要问题:可以这样做:使用请求时间生成的具有唯一密钥的特殊对象“ expStart”中每小时获得的每个体验值?

来自“帐户”集合的一个文档的结构:

{
"_id" : ObjectId("54bd56cb699f4890160aacc9"),
"name" : "Shubiii",
"characters" : [ 
    {
        "online" : false,
        "rank" : 562,
        "dead" : false,
        "name" : "ShrupShurp",
        "league" : "hardcore",
        "level" : 93,
        "class" : "Ranger",
        "experience" : 2515197599,
        "expStat" : {
            "dd2015_1_19_19_9" : 122120,
            "dd2015_1_19_20_11" :45222
        }
    },
    {
        "online" : false,
        "rank" : 563,
        "dead" : false,
        "name" : "ShrupShurp2",
        "league" : "hardcore",
        "level" : 93,
        "class" : "Ranger",
        "experience" : 2515197599,
        "expStat" : {
            "dd2015_1_19_19_9" : 3122120,
            "dd2015_1_19_20_11" :21212
        }
    }
],
"challenges" : {
    "total" : 3
},
"twitch" : {
    "name" : ""
}

}

这是API数据结构( http://www.pathofexile.com/developer/docs/api ):

{
"total": 15000,
"entries": [
    {
        "online": false,
        "rank": 2,
        "dead": false,
        "character": {
            "name": "iamgodyi",
            "level": 100,
            "class": "Ranger",
            "experience": 4250334444
        },
        "account": {
            "name": "TW_James",
            "challenges": {
                "total": 0
            },
            "twitch": {
                "name": "destiny601"
            }
        }
    },
    {
        "online": true,
        "rank": 3,
        "dead": false,
        "character": {
            "name": "xVisco",
            "level": 100,
            "class": "Templar",
            "experience": 4250334444
        },
        "account": {
            "name": "xVisco",
            "challenges": {
                "total": 0
            }
        }
    }
]

}

对不起我的英语不好。

#1楼 票数:0

您可以使用此结构。

{
  "_id" : ObjectId("54bd56cb699f4890160aacc9"),
  "name" : "Shubiii",
  "characters" : {
                   "online" : false,
                   "rank" : 562,
                   "dead" : false,
                   "name" : "ShrupShurp",
                   "league" : "hardcore",
                   "level" : 93,
                   "class" : "Ranger",
                   "experience" : 2515197599,
                   "expStat" : {
                                 "dd2015_1_19_19_9" : 122120,
                                 "dd2015_1_19_20_11" :45222
                               }
                  },
  "challenges" : {
                   "total" : 3
                 },
  "twitch" : {
               "name" : ""
             }
}

  ask by Sergey P. translate from so

未解决问题?本站智能推荐:

1回复

我应该如何在mongodb / nosql中存储数据?

我正在node.js和mongodb(mongoose模块)上编写一个大型社交网络。 这意味着数据库中将有许多用户和大数据。 我已创建用户注册,现在我需要允许用户互相编写私人消息。 问题: 1)我应该如何存储有关发送私信的数据? 我想过两种方法: 第一 通过这
1回复

在哪种情况下在mongodb中通过字符串验证使用objectId?

在注释集合中插入时获得验证失败错误。 我有3个收藏集(规则,页面和评论)。 规则收集:- {验证者:{$ or:[{r_name:{$ type:“ string”}}]}} 页面集:- {验证者:{$ or:[{url:{$ type:“ string”}}]}} 评论
1回复

如何让变量保存mongodb数据库

所以基本上,我正在尝试设置一个可以直接从其查询mongodb的变量。 我的代码如下所示: db.js 有没有办法做到这一点,还是我必须在connect函数中做所有事情? 我假设它可能与回调函数有关。 任何帮助深表感谢。
1回复

使用mongodb处理历史或数据更改跟踪

我在一家小型建筑公司的小型建筑公司工作,我被要求创建一个软件,该软件可以帮助任何人使用地图查看有关工作进展的所有信息。例如:我们应该建造一座从3年后开始的建筑现在是2019年,并且平均时间会更新有关工作状态的信息。因此,对于2019年,有一些信息适用于2020年和2021年。当我使用nodejs和M
2回复

mongodb 获取刚刚创建的数据的_id

如何获取刚刚插入到数据库中的对象的 _id? 我有这一行,我需要获取我刚刚创建的帖子的 _id。 我怎样才能做到这一点? 我需要搜索结果还是有一个功能可以做到这一点?
2回复

MongoDB + NodeJS Web 应用程序的初始数据库结构/数据

我正在 Node.js 中开发一个 Web 应用程序,以 MongoDB 作为后端。 我想知道的是,用于创建初始集合并使用初始数据(例如名称白名单或预定义常量列表)填充它们的普遍接受的过程是什么(如果存在)。 从我所见,MongoDB 会在数据插入数据库时​​隐式创建集合,并且插入的集合不存在。
2回复

查询 MongoDB 问题

我正在尝试(未成功)查询具有以下结构的集合: 使用此查询: 本质上,我试图找到其坐标在我的输入/输出 lats/lngs 的某个范围(此处为 1)内的文档。 但是当我通过这个查询时,它与我知道它应该匹配的文档不匹配。 有小费吗?
3回复

MongoDB / Mongoose排序错误

返回此错误: 有任何想法吗? 谢谢!