我正在更新一个已经保存记录的数据库的架构。如何添加附加字段"deviceAccess",默认为"false“
现有模式:
deviceId: "03",
switches:[
{
_id: '03',
switchesID:'03',
switchName:'Laptop'
}
]我想要的模式:
deviceId: "03",
switches:[
{
_id: '03',
switchesID:'03',
switchName:'Laptop',
deviceAccess: 'False'
}
]我希望所有现有的设备都是如此!请帮帮我!
发布于 2019-11-02 20:10:59
编写一个迁移脚本来更新集合中的所有文档:
使用npm包执行以下操作:
安装它:
npm install mongodb-migrate脚本:
var mongodb = require('mongodb');
exports.up = function(db, next){
const your_collection = db.collection("your_collection_name");
yout_collection.update({},
{$set:{"switches.deviceAccess": false}},
{multi: true},
(err, data)=>{
//todo
next();
})
};
exports.down = function(db, next){
next();
};run:
node ./node_modules/mongodb-migrate -runmm -dbc '{ "host":"<db_hostIp_address>","db":"<db_name>","port":<db_port>}' up备注:
不要忘记用
deviceAccess: {type: Boolean, default: false}
发布于 2019-11-02 19:18:36
我脑子里有三件事。我推荐第一个。
deviceAccess不存在,那么将其视为false。您可以利用noSQL的架构少行为。希望能帮上忙。
https://stackoverflow.com/questions/58674332
复制相似问题