【发布时间】:2015-05-27 23:46:19
【问题描述】:
我试图对 MongoDB 的工作原理有一个基本的了解,但无法找到解决的这个问题。我认为这是不可能的,但也许我错了?
鉴于以下 JSON 结构:
{
"bob": { "height": 68, "gender": "m" },
"sally": { "height": 48, "gender": "f" }
}
当这个结构被反序列化为 JavaScript 时,我可以轻松地迭代这个对象的属性来获取人员列表。请注意,此人员列表可以/将是动态的。因此,有时“bob”不存在,有时“mike”可能存在,等等。
但是,对于 MongoDB 查询,这似乎是不可能的。 MongoDB 似乎要求这样的数据在一个数组中。然后我可以向下查询“人”数组,然后对其进行迭代。
我想确认一下,MongoDB 引擎确实不能像 JS 那样迭代属性。如果这是真的,我想这是有道理的。由于 JSON 结构将数据和模式都表示在一个整体中,因此具有这样的动态属性可能会使文档难以(即使不是不可能)索引。所以也许这就是原因?我希望有人能证实。
我希望我可以使用 MongoDB 来存储返回我的 UI 的相同 JSON 结构,但我认为该结构需要修改为如下所示的数据存储。
{ "people": [{
"name": "bob", "height": 68, "gender": "m" }, {
"name": "sally", "height": 48, "gender": "f" }]
}
【问题讨论】:
-
你看过stackoverflow.com/questions/2298870/…它可能会提供一些见解。
-
谢谢@DaveCoast,在我所有的搜索中我都没有看到。很有意思。就我而言,它可能会有所帮助,但我必须运行 map-reduce 操作,然后从该结果返回并再次查询。对于需要付出的努力,我可能最好重组我的数据以更好地适应 DBMS。
标签: javascript json mongodb