我的用户中有一个mongodb。用户就是这样:
_id: ObjectId,
created_at: Date,
username: String
我不知道为什么,但我的所有用户created_at
字段都已重置。
我有一个保存,但我不能使用我的保存并通过保存替换所有用户,因为我总是有新用户。我只需要在保存中用自己的created_at
字段替换所有现有用户created_at
字段。
我可以使用mongoose和node.js来做到这一点(我不知道怎么做但我能找到)但是我宁愿只使用mongodb函数来做到这一点。我的保存时间为.bson
格式。
答案 0 :(得分:0)
您可以创建一个本地数据库,将.bson
放入其中。然后向本地数据库发出请求以获取所有用户并将主题保存在.json
文件中。然后使用保存的数据更新错误日期的用户。
在数据库中输入您的bson文件
mongorestore -d yourdatabase -c yourcollection "users.bson"
在json文件中设置所有好用户
db.model('User').find({}, { created_at: 1 }).exec(function(error, _users) {
jsonUsers = _users;
jsonUsers = JSON.stringify(jsonUsers);
fs.writeFile('myjsonfile.json', jsonUsers, 'utf8', (err) => {
});
});
更新错误的用户以恢复良好
const jsonUsers = require('../myjsonfile.json');
db.model('User').find({}, { created_at: 1 }).exec(function(error, _users) {
if (error) return ;
_users.forEach((wrongUser) => {
let goodUser = jsonUsers.find((gU) => { return gU._id == wrongUser._id });
if (goodUser) {
wrongUser.created_at = goodUser.created_at;
wrongUser.save(cb);
} else {
//this is on of your new user that where not in your .bson file
}
});
});