Java中以upsert为标准的MongoDB更新文档

Java中以upsert为标准的MongoDB更新文档,java,mongodb,mongotemplate,Java,Mongodb,Mongotemplate,我必须根据条件更新文档,或者在文档不存在时添加一个条件,即upsert取决于exists查询。我可以在mongoDb shell中实现这一点,但不知道如何在Java中使用mongoTemplate实现这一点 我的问题是 db.Bookmark.update( { $and:[ { 'clientId':168613 }, { 'resourceId':76864136 }, {'books':{ $not: {$size :3} } } ] }

我必须根据条件更新文档,或者在文档不存在时添加一个条件,即upsert取决于exists查询。我可以在mongoDb shell中实现这一点,但不知道如何在Java中使用mongoTemplate实现这一点

我的问题是

db.Bookmark.update( { $and:[ 
      { 'clientId':168613 }, 
      { 'resourceId':76864136 }, 
      {'books':{ $not: {$size :3} } } 
    ] },
    { $addToSet:{ 'books': DBRef( "book","168613_1671" ) } },
    { $not: { $exists:{ 'clientId': 168613, 'resourceId': 76864136 } } 
} );
因此,如果在Bookmark collection中,书籍的大小小于3,则更新该集合,否则请检查upsert,这取决于是否存在clientId和resourceId组合的条目