簡體   English   中英

如何將自定義 Mongo DB 更新查詢轉換為 Java 代碼

[英]How to convert custom Mongo DB update query to Java code

我在互聯網上發現如何用小寫更新所有文檔字段值。 我很幸運地找到了一個根據我的要求修改的查詢,它工作正常。

db.messages.updateMany({},
[
  {
    $set: {
      recipientEmail: {
        $toUpper: '$recipientEmail'
      },
      senderEmail: {
        $toUpper: '$senderEmail'
      }
    }
  }
],{ multi: true })

但是現在我試圖將此查詢轉換為 Java 代碼,我無法轉換它。 我再次開始尋找互聯網,但找不到任何代碼。 那么,誰能幫我將此查詢轉換為 Java 代碼,以便我可以在 Spring 啟動應用程序中使用它? 提前致謝。

您可以在存儲庫接口中使用 @Query 注釋並按原樣傳遞您的查詢(在方法簽名上方)。 這是一個例子:

@Query("{$and:["
            + "     {'id': ?0},"
            + "     {$or:["
            + "         {'customerId': ?1},"
            + "         {'specificCode': ?4}"
            + "     ]},"
            + "     {'beginDate' : { $gte: ?2}},"
            + "     {$or:["
            + "             {'endDate' : { $lte: ?2}},"
            + "             {'endDate' : {$exists: false}}"
        
            + "     ]},"
            + "     {'numberOfTimesUsed': { $lt: ?3}}"
            + "]}")

你可以嘗試這樣的事情:

Query query = new Query();
Update update = new Update();
update.set("recipientEmail", StringOperators.valueOf("recipientEmail").toUpper());
update.set("senderEmail", StringOperators.valueOf("senderEmail").toUpper());
mongoTemplate.updateMulti(query, update, Messages.class);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM