【发布时间】:2012-12-26 18:25:05
【问题描述】:
我使用 mongodb + node.js + mongoose.js ORM 后端。
假设我有一些没有 _id 字段的嵌套对象数组
mongoose.Schema({
nested: [{
_id: false, prop: 'string'
}]
})
然后我想将 _id 字段添加到所有嵌套的对象中,所以猫鼬模式是
mongoose.Schema({
nested: [{
prop: 'string'
}]
})
那么我应该运行一些脚本来修改生产数据库,对吗?处理这种变化的最佳方法是什么?哪种工具(或方法)最适合用于实施变革?
【问题讨论】:
-
从您给出的示例中,您似乎想要删除_id,而不是添加它。如果要添加一个_id,如何确定每个_id应该是什么?
-
我不明白你。 _id: false 告诉 mongoose 不要为模式描述的对象生成 _id,如果我从模式描述中删除 _id: false,mongoose 将使用生成的 _id 创建新文档。我要问的是用新的_ids填充所有现有对象(没有_id)的正确方法。
-
_ids应该由系统生成还是由你生成?
-
我认为是系统。我没有任何 ID,我只需要所有对象都有 _id。
-
您需要逐个元素地手动编写代码。