Adi*_*val 10 mongodb node.js objectid parse-server keystonejs
我正在使用Parse Dashboard进行iOS应用程序的用户管理.此外,我正在使用使用MongoDB数据库的外部API.
我目前面临的问题是从Parse Dashboard创建的用户具有较小的id而不是MongoDB的ObjectID,而其他未解析的资源则由普通的ObjectID生成.
例如.用户对象:
{
_id:"qVnyrGynJE",
user_name:"Aditya Raval"
}
Run Code Online (Sandbox Code Playgroud)
文件对象:
{
_id:"507f191e810c19729de860ea",
doc_name:"Marksheet",
user:"qVnyrGynJE"
}
Run Code Online (Sandbox Code Playgroud)
任务对象:
{
_id:"507f191e810c19729de860ea",
task_name:"Marksheet",
user:"qVnyrGynJE"
}
Run Code Online (Sandbox Code Playgroud)
我也使用Keystone.js作为后端管理仪表板.所以基本上由于这种混合类型的KeyStone.js中的ID关系被破坏而Keystone.js崩溃了.
因此,我想通过修复Keystone.js将所有现有的小ID迁移到普通的MongoDB ObjectID,而不会破坏关系或任何其他演练.
你可以运行这样的东西:
var users = db.Users.find({});
for(var i = 0; i < users.length(); i++)
{
var oldId = users[i]._id;
delete users[i]._id;
db.Users.insert(users[i], function(err, newUser) {
db.Documents.updateMany({"user": oldId},{ $set: { "user": newUser._id }});
//Do this for all collections that need to be update.
});
);
}
db.Users.deleteMany({_id: { $type: "string" }});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |