Я должен обновить документ в соответствии с критериями или добавить один, когда документ не существует, т.е. upsert зависит от существующего запроса.Я могу добиться этого в оболочке mongoDb, но понятия не имею, как добиться того же с mongoTemplate в Java.
мой запрос
db.Bookmark.update( { $and:[
{ 'clientId':168613 },
{ 'resourceId':76864136 },
{'books':{ $not: {$size :3} } }
] },
{ $addToSet:{ 'books': DBRef( "book","168613_1671" ) } },
{ $not: { $exists:{ 'clientId': 168613, 'resourceId': 76864136 } }
} );
, поэтому, если в коллекции закладок размер книг меньшечем 3, затем обновите коллекцию, иначе проверьте upsert, который зависит от того, есть ли запись для комбинации clientId и resourceId.