【问题标题】:Adding complex data structure in mongoose在猫鼬中添加复杂的数据结构
【发布时间】:2014-10-30 13:37:53
【问题描述】:

我有一组数据,我希望看起来像这样:

{
   "city" : "new york",
   "state" : "missouri",
   "data" : {
       2012 : {
          volume : {
              cars : 12,
              trucks : 13,
              ...
          },
          price : {
              cars : 1234,
              trucks : 1343,
              ...
          }
       },                 
       2004 : { another year like 2012 },
       ...
    }
}

这是我的猫鼬模式对象:

var carMakerObject = mongoose.Schema({
    city : "string",
    state : "string",
    loc: { type: [Number], index: '2dsphere'},
    data: {
       2012 : {
         volume :  {type: Number, trim: true},
         price :  {type: Number, trim: true},
       }
       ...
    })

我想我的问题是,我怎样才能设置一个复杂的数据对象,它是一个对象内部有对象的对象?我玩过不同的语法,但我错过了一些东西。我将向此架构添加更多数据,并且我希望它保持灵活且易于扩展。

谢谢!

【问题讨论】:

  • 嗨,Alex,这部分是 MongoDB 建模问题,部分是 Mongoose 实现问题。为了得到一个好的答案,你需要描述你需要模型做什么。是否有更多的读取或写入请求?数据将如何增长?到底是多少?等等...我建议您先看看MongoDB data modelling best practices,然后进一步说明您的问题...
  • 谢谢,mbernath。我将尝试更具体地重新提出我的问题,然后再试一次。
  • stackoverflow.com/questions/25728189/… 我最终完全重写了问题以使问题更清楚。

标签: node.js mongodb mongoose


【解决方案1】:

你可以这样做,

var carMaker = {
   "city" : "new york",
   "state" : "missouri",
   "data" : {
       2012 : {
          volume : {
              cars : 12,
              trucks : 13,
              ...
          },
          price : {
              cars : 1234,
              trucks : 1343,
              ...
          }
       },                 
       2004 : { another year like 2012 },
       ...
    }
}

carMakerModel.create(carMaker);

carMakerModel 是型号名称。

【讨论】:

  • 虽然此代码可能会解决问题,including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的答案以添加解释并说明适用的限制和假设。 From Review
猜你喜欢
  • 1970-01-01
  • 2021-09-21
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
相关资源
最近更新 更多