java操作mongodb——更新數據


Java中可以通過updateOne,updateMany,replaceOne方法進行集合的文檔更新。但是 _id 是不能更新的

updateOne只會更新一條數據,即使通過Filters.lt("age", 20)過濾出多條數據,也只會取出一條進行更新

 

 

更新操作符

  名稱        描述

  $inc        增加一個指定值

  $mul        乘以一個指定值

  $rename       重命名      

  $setOnInsert     更新操作對現有的文檔沒有影響,而是新插入了一個文檔,則在這新插入的文檔中加上指定字段

  $set        修改值

  $unset        刪除文檔中指定字段

  $min         更新文檔中小於指定值的字段

  $max        更新文檔中大於指定值的字段

  $currentDate    設置當前時間,日期或者時間戳

 

$set

只修改指定字段值,當字段不存在時,則在該文檔中添加一個新的字段並賦值

doc.updateOne(Filters.eq("age", 20), new Document("$set",new Document("sex",2222)));
FindIterable<Document> iter1 = doc.find();
iter1.forEach(new Block<Document>() {
  public void apply(Document _doc) {
    System.out.println(_doc.toJson());
  }
});

 

$inc

對指定字段進行增量增加,當字段不存在時,則在該文檔中添加字段並賦值

doc.updateOne(Filters.eq("name", "張三"), new Document("$inc",new Document("age",10)));
FindIterable<Document> iter = doc.find();
iter.forEach(new Block<Document>() {
  public void apply(Document _doc) {
    System.out.println(_doc.toJson());
  }
});

 

$mul

$mul的用法與$inc的用法差不多,差別在於$mul為相乘,$inc為相加,若字段不存在,添加字段並賦值為0

 

$rename

修改document的字段名

doc.updateOne(Filters.eq("name", "張三"), new Document("$rename",new Document("phone","telPhone")));
FindIterable<Document> iter = doc.find();
iter.forEach(new Block<Document>() {
  public void apply(Document _doc) {
    System.out.println(_doc.toJson());
  }
});

 

其他操作可查看官方文檔:

https://docs.mongodb.com/manual/reference/operator/update/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM