【发布时间】:2017-12-08 16:02:27
【问题描述】:
我正在尝试将一些数据从旧的 MongoDB 模式迁移到新模式。所有架构的东西都工作正常。我无法理解的是为什么旧文档在保存为新文档之前没有被转换。我正在阅读所有文档,使用 map 函数将它们转换为新模式,然后保存它们。但它们都没有通过验证,因为事实证明,它们根本没有被修改为新模式。这是一个异步问题吗?任何线索都会很棒。
let User = require('./api/models/user.model');
let newUser;
let mapUsers = () => {
let makeUser = (u) => {
return {
firstName: u.first_name,
lastName: u.last_name,
avatarUrl: u.avatar_url,
email: u.email,
loginCount: u.login_count,
loginTime: u.login_time,
logoutTime: u.logout_time
}
};
h2User.find({}).limit(1).exec((err, users) => {
if (err) {
console.error(err);
} else {
users.map(user => {
newUser = new User(makeUser(user)); // like this doesn't work
newUser.save((err, nu) => {
if (err) {
console.log(err);
} else {
console.log(nu._id)
}
});
});
}
});
};
mapUsers();
【问题讨论】:
-
你试过
new User(makeUser(user.toObject())),猫鼬返回的是文档而不是对象。 -
哇。那行得通,谢谢。如果你想创建一个答案...
标签: javascript node.js mongoose