Mongodb - 如何删除文档元素

时间:2013-02-07 17:42:19

标签: mongodb mongoose

当我将Match打印到网页时,我有2个Schema并生成以下数据,但是这个team []字段,我相信它是从开发的前一个点开始的,我已经设法得到了家庭团队保存到正确的地方,我怎么摆脱这个领域,因为它是不必要的?

Team Schema

var Team = new Schema({
  'key' : {
    unique : true,
    type : Number,
    default: getId
  },
  'name' : { type : String,
              validate : [validatePresenceOf, 'Team name is required'],
              index : { unique : true }
            }
});

匹配架构

var Match = new Schema({
  'key' : {
    unique: true,
    type: Number,
    default: getId
  },
  'hometeam' : { type: Schema.ObjectId, ref: 'Team' },
  'awayteam' : { type: Schema.ObjectId, ref: 'Team' }
});

匹配输出

[
  {
    "_id": "5112aeaf064432060d000002",
    "team": [
      {
        "key": 1360178863022,
        "_id": "5112aeaf064432060d000003"
      }
    ],
    "__v": 0,
    "key": 1360178863022
  },
  {
    "hometeam": "5106e7ef9afe3a430e000007",
    "_id": "5113b7ca71ec596125000005",
    "__v": 0,
    "key": 1360246730427
  }
]

1 个答案:

答案 0 :(得分:0)

Mongoose有一个模式可以验证,但MongoDB没有。 Mongo是无模式的,这意味着它完全不知道你的数据应该代表什么。因此,如果您的架构允许在过去进行此类更改,则您有责任清理所造成的混乱。您可以只对旧方案的值进行查询,并在其上调用remove来删除文档,但除此之外,它主要是手工劳动(或放弃所有内容 - 这对于开发也很有用)。