我正在处理 Nestjs,我想从 Collection_1 中获取一个文档并将该文档保存到 Collection_2 中。我使用了 $out 聚合,但我只能同时保存集合 2 中的一个文档,但当我尝试保存第二个文档时,第一个文档消失了。我想保存从集合 1 中检索到的集合 2 中的每个文档
服务代码:
async order(name){
const list=await this.usersmodel.find({name:name}).exec()
//return list
try{
if(list){
const x=await this.usersmodel.aggregate([
{ $match: { name: name } },
{$out:"payment"}
])
return "data saved in payment collection"
}
}
catch(error){
return(error.message)
}
}
Controller 代码:
@Post('orderdata')
async orderdata(@Body('name')name){
return this.usersService.order(name)
}
最佳答案
如果您使用的是 Mongo -v 4.2+,您可以使用 $merge
await this.usersmodel.aggregate([
{
$match: {
name: name
}
},
{
$merge: "payment"
}
])
$merge
还有更多选项允许您根据需要更新现有文档。
不幸的是,如果您使用的是较旧的 Mongo 版本,则无法通过 1 个操作完成此操作,您必须首先查询 collection1,然后单独插入到 collection2。
关于javascript - 如何将一个文档保存到mongodb中同一数据库的两个不同集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61716015/