如何在 mongodb 的 findOneAndUpdate 中使用对象作为过滤器

Posted

技术标签:

【中文标题】如何在 mongodb 的 findOneAndUpdate 中使用对象作为过滤器【英文标题】:How to use object as filter in findOneAndUpdate in mongodb 【发布时间】:2021-12-19 11:30:43 【问题描述】:

我想在 findOneAndUpdate 中使用 _id 对象作为过滤器:


    "_id": 
        "playerId": "189583",
        "tournamentId": "197831"
    ,
    "playerName": "Afiridi",
    "score": [],
    "__v": 0

我试过了,但没用:

await Scorecard.findOneAndUpdate(

      _id: 
        playerId: playerId,
        tournamentId: tournamentId
      
    ,
    
      $addToSet: 
        "score": 
          _id: matchID
        
      
    
  );
//playerId and tournamentId are coming from above code, not listed

我正在使用猫鼬,但我们感谢任何形式的帮助。

【问题讨论】:

见Query on Nested Documents。 【参考方案1】:

尝试点符号语法:

await Scorecard.findOneAndUpdate(
        
          "_id.playerId": playerId,
          "_id.tournamentId": tournamentId
        ,
        
          $addToSet: 
            "score": 
              _id: matchID
            
          
        
      );

【讨论】:

以上是关于如何在 mongodb 的 findOneAndUpdate 中使用对象作为过滤器的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB:如何在 3.6 mongoDb 版本中解析日期?

MongoDB:如何在 3.6 mongoDb 版本中解析日期?

在mongodb中如何给列表按时间排序

如何在mongodb中搜索名字和姓氏

mongodb如何在mac上安装mongoDB

Mongodb如何创建mongodb的replica set