MongoDB的主键类型修改,记录下
由于前期设计不周,导致主键 _id是ObjectId, 不方便更新维护,后期修改太过麻烦,特此记录一笔
//这样将新建一条重复记录,我city 和 category是collection的中的唯一索引
db.CategoryCount.find({ "_id" : { "$type" : 7 } }).forEach(function(x){
x._id=""+x.city+x.category;
db.CategoryCount.save(x);
});
//通过上面的调用,已经将记录复制了一份,主键未字符串类型,下面将删除老的ObjectId为主键的记录
db.CategoryCount.remove({ "_id" : { "$type" : 7 } });
//type对应的类型值为
| 类型 | 值 |
|---|---|
| Double | 1 |
| String | 2 |
| Object | 3 |
| Array | 4 |
| Binary data | 5 |
| Object id | 7 |
| Boolean | 8 |
| Date | 9 |
| Null | 10 |
| Regular expression | 11 |
| JavaScript code | 13 |
| Symbol | 14 |
| JavaScript code with scope | 15 |
| 32-bit integer | 16 |
| Timestamp | 17 |
| 64-bit integer | 18 |
| Min key | 255* |
| Max key | 127 |
浙公网安备 33010602011771号