使用Jongo更新数组

时间:2015-04-13 03:59:04

标签: mongodb jackson jongo

我有一个

形式的mongodb集合
{
  "_id":"id",
  "userEmail":"userEmailFromCustomerCollection",
  "customerFavs":[
    "www.xyz.com",
    "www.xyz.com",
    "www.xyz.com"

    ]
}

我需要使用Jongo向customer favs数组添加一个元素,我使用以下代码片段来执行此操作。

String query = "{userEmail:'"+emailId+"'}";
    customerFavCollection.update(query).with("{$addToSet:{customerFavs:#}}", favUrl);

我的问题是,如果文档没有,我需要插入文档 已经存在,我怎么能使用Jongo这样做,我知道一个更容易的选择是通过Id检索文档,如果它不存在然后使用save()插入文档,但我试图避免额外的检索。 / p>

1 个答案:

答案 0 :(得分:-1)

您可以在查询中添加upsert()

customerFavCollection.update("userEmail:#", emailId)
                     .with("{$addToSet:{customerFavs:#}}", favUrl)
                     .upsert();