mongodb - Mongo 3.4+ - 带子区域的区域

标签 mongodb

我想要一个包含区域的集合。部分区域有分区

- Greece
-- Thessaloniki
-- Athens
-- Mykonos

我希望他们都有唯一的mongo id

最好的制作方法是什么?

每个区域/子区域都必须是一个带有 parent_area_id 的文档吗?

保留真实结构更好?如果其中有子文档,如何搜索一个区域?

最佳答案

我假设您是在 mongo shell 中执行此操作。我不建议为他们每个人创建一个单独的 _id 字段。如果我是你,我会为每个国家/地区创建一个文档,然后为每个地区创建一个子文档。但是没有更多细节,我只能说这么多。

如果您在 _id 字段中使用国家/地区,它将看起来像这样。

db.collection.insert({"_id":"Greece","Areas":["Thessaloniki","Athens","Mykonos"]})

如果你想向每个区域添加元素,你应该做这样的事情然后添加。

db.collection.insert( { _id: "Greece", 
    "Areas":[{"Thessaloniki":
                {"zipcode":12345,"population":384856}},
             {"Athens":{"zipcode":12345}},
             {"Mykonos":{"zipcode":12345}}]}

关于mongodb - Mongo 3.4+ - 带子区域的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46006956/

相关文章:

java - Mongo DB Rest API 中 ObjectId 的十六进制表示无效

mongodb - 我可以使用 MongooseJS "populate"子文档数组中的属性吗?

MongoDB Aggregation,有没有办法从聚合游标中获取 executionStats?

mongodb - nodejs - mongodb - 如何删除记录

sql - 对于大量数据的简单分组查询,哪种数据库最有效?

javascript - MongoDB:将数组添加到现有数组中

Java:如何通过从mongodb(远程服务器)读取数据来加速JTree重建?

php - 如何在 laravel 5.7 中测试 mongo 连接?

node.js - 如果在循环内找到node.js mongodb,则没有得到响应

MongoDB 按结果限制分组