请教一个mongoose数组嵌套的问题


假设存入mongo里面的数据是这样的:


 {
  "a": 1,
  "b": 2,
  "c": [
    [
      {
        "d": 3,
        "e": 4
      },
      {
        "d": 4,
        "e": 5
      }
    ],
    [
      {
        "d": 6,
        "e": 7
      },
      {
        "d": 8,
        "e": 9
      }
    ]
  ]
}

请问这个时候 Schema 结构应该怎么写呢?

我一开始这样写的:


 var cs = new Schema({
  d: Number,
  e: Number
});

var ps = new Schema({
  a: Number,
  b: Number,
  c: [[cs]]
});

但后来看文档发现没这种用法,程序也无法运行,但如果改成:


 var ps = new Schema({
  a: Number,
  b: Number,
  c: [cs]
});

find 出来的数据的结构就跟一开始不一样变成:


 {
  "_id": "5392b3751fbda67b48e4b569",
  "a": 1,
  "b": 2,
  "c": [
    {
      "0": {
        "d": 3,
        "e": 4
      },
      "1": {
        "d": 4,
        "e": 5
      }
    },
    {
      "0": {
        "d": 6,
        "e": 7
      },
      "1": {
        "d": 8,
        "e": 9
      }
    }
  ]
}

请问应该怎么设计 Schema 才能使输出的数据跟一开始的结构一样

node.js mongoose mongodb

faulty 10 years, 5 months ago
  • -#这结构难道不一样吗?
xuwei answered 10 years, 5 months ago

Your Answer