如何在架构更改后从mongo中获取旧记录

时间:2012-12-10 11:45:26

标签: node.js mongodb mongoose

我有一个像

这样的现有架构
exports.OldCollectionSchema= new Schema({
Id: { type: Schema.ObjectId },
parentId: { type: Schema.ObjectId },
userId: { type : String }, 
userName: { type : String })

现在,我通过添加新字段type

,在两种情况下使用上述集合

类型将是场景a或场景b

所以我想获取旧记录+ type =“scenario a”并在页面中显示

怎么可能?

1 个答案:

答案 0 :(得分:2)

我相信Mongoose有__v字段表示版本,但我不是Mongoose专家所以我只是粘贴你可以做的简单hacky查询:

db.col.find({type: {$exists: false, $in: ['a']}});

这基本上会说:“获取他们还没有场景的所有记录(基本上是这个架构之前的那些)并将它们与那些具有'a'类型的那些记录结合起来

修改

实际上更好的方法就是在这里使用null

db.col.find({type: {$in: ['a', null]}});