我有以下代码片段。
const user = await User.findOne({ email: ownerData.email })
.select('-_id -__v -updatedAt')
.lean();
if (!user) {
throw new HttpException(404, 'User not found');
}
await User.deleteOne({ email: ownerData.email });
console.log(user);
const newUser = await User.create({
...user,
...{
address: ownerData.address,
city: ownerData.city,
state: ownerData.state,
},
_id: ownerId,
});
await newUser.save();
所以基本上我想要做的是删除已经存在的旧用户创建一个新用户,其中包含旧用户的详细信息。但不幸的是,即使我没有使用旧updatedAt
字段,旧updatedAt
字段也会填充到新的用户对象文档中。
ownerId 有可能与旧的_id 相同。我相信是因为这个,但我没有解决这个问题。
谢谢
编辑
我在这个问题上得到了另一个有趣的线索。
因为我正在考虑createdAt
在第一行代码
const user = await User.findOne({ email: ownerData.email })
.select('-_id -__v -updatedAt')
.lean();
新文档正在占用该createdAt
领域的时间。一旦我删除并检查了 newUser 正在新的时间创建。createdAt
和之间有什么关系updatedAt
吗?