繁体   English   中英

mongoDB 从一个集合中查找并保存在另一个集合中

[英]mongoDB find from one collection and save in another collection

我想从我的用户集合中找到一个用户,然后将这个确切的用户插入另一个具有相同架构的集合中。

这是我的实现:(控制器)

const user = await User.findOne({ _id: id });
if (user) {
  const deletedUser = await DeletedUser({
    ...user,
  });
  deletedUser.save();
}

(架构)

const User = tazweedDBConnection.model('users', userSchema, 'users');
const DeletedUser = tazweedDBConnection.model(
  'deleted-users',
  userSchema,
  'deleted-users'
);
module.exports = { User, DeletedUser };

它正在工作,但deleted-users中的数据与user中的数据不同。 我只获得架构中的默认值。

从 mongoDB 4.2 版开始,您可以使用$merge在一个查询中执行此操作(对于旧版本使用$out ):

User.aggregate([
 {$match: {_id: id}},
 {$merge: {into: "newCollection"}}
])

请注意,响应是: Fetched 0 record(s) in 0ms ,因为没有文档返回。 而是将文档插入到新集合中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM