Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果存在,则使用$set更新文档,否则使用Mongoose插入整个新文档_Mongoose - Fatal编程技术网

如果存在,则使用$set更新文档,否则使用Mongoose插入整个新文档

如果存在,则使用$set更新文档,否则使用Mongoose插入整个新文档,mongoose,Mongoose,我试图在mongoose中使用$set更新文档,但只希望它在文档存在时使用该集合。否则我希望它创建一个新文档。问题是我需要添加整个文档,而不仅仅是$set中提到的字段。这在mongoose的一个查询中可能吗 您可以使用findOneAndUpdate和upsert:true选项: MyModel.findOneAndUpdate(query, {$set: {.....}}, { upsert:true }, function(err, doc){ if (err){

我试图在mongoose中使用$set更新文档,但只希望它在文档存在时使用该集合。否则我希望它创建一个新文档。问题是我需要添加整个文档,而不仅仅是$set中提到的字段。这在mongoose的一个查询中可能吗

您可以使用
findOneAndUpdate
upsert:true
选项:

    MyModel.findOneAndUpdate(query, {$set: {.....}}, { upsert:true }, function(err, doc){
    if (err){
        return res.send(500, { error: err })
    };
    return res.send("succesfully saved");
});

代码示例:bulk.find({u id:id}).update({$set:{title:{foo bar'}}).upsert(newDoc)??我认为这没有帮助,因为如果文档不存在,我需要插入整个文档。在这种情况下,它将使用放入$setb中的值进行upsert,但可以将完整对象传递给
$set