update document in mongodb using java:

Mongodb driver provides functionality to update document in mongodb using java. Update is a process in which single or multiple documents can be updated based on certain criteria. Let us see what javadoc says about update

 
1
2
<a title="class in com.mongodb.client.result" href="http://api.mongodb.org/java/3.0/com/mongodb/client/result/UpdateResult.html">UpdateResult</a> updateOne(<a title="interface in org.bson.conversions" href="http://api.mongodb.org/java/3.0/org/bson/conversions/Bson.html">Bson</a> filter,
                       <a title="interface in org.bson.conversions" href="http://api.mongodb.org/java/3.0/org/bson/conversions/Bson.html">Bson</a> update)
Update a single document in the collection according to the specified arguments.
Parameters:
filter – a document describing the query filter, which may not be null.
update – a document describing the update, which may not be null. The update to apply must include only update operators.
Returns:
the result of the update one operation

Let us try to understand with an example. To update document in mongodb using java, consider we have below document in collection.

 
1
2
3
4
5
6
{
    "_id" : ObjectId("55daa2f7e60dd21204306b77"),
    "name" : "Harish Taware",
    "salary" : 40000,
    "type" : "FT"
}

Now we want to update the salary to 80000. We have to provide

  • A document which will identify above document. Let us say we want to update salary where name is “Harish Taware”
  • A document which will specify the “$set” operation and the value which will itself be a Document.

Consider below code

 
1
2
3
4
Bson filter = new Document("name", "Harish Taware");
Bson newValue = new Document("salary", 90000);
Bson updateOperationDocument = new Document("$set", newValue);
collection.updateOne(filter, updateOperationDocument);

Here,

  • filter variable stores the document with name Harish Taware
  • newValue is the document which specifies salary needs to be updated to 90000
  • updateOperationDocument specifies that a set operation is to be performed.
  • collection.updateOne(filter,updateOperationDocument)  actually does the job of updating document.

Here is complete code

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.thejavageek.mongodb;
 
import java.util.ArrayList;
import java.util.List;
 
import org.bson.Document;
import org.bson.conversions.Bson;
 
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
 
public class MongodbFind {
 
public static void main(String[] args) {
 
MongoClient client = new MongoClient("localhost", 27017);
MongoDatabase database = client.getDatabase("employee_db");
MongoCollection<Document> collection = database
.getCollection("employees");
 
Bson filter = new Document("name", "Harish Taware");
Bson newValue = new Document("salary", 90000);
Bson updateOperationDocument = new Document("$set", newValue);
collection.updateOne(filter, updateOperationDocument);
 
client.close();
 
}
}

Run the program to update mongodb document using java. Notice the salary is changed

 
 
 
 
 

Java

 
1
2
3
4
5
6
{
    "_id" : ObjectId("55daa2f7e60dd21204306b77"),
    "name" : "Harish Taware",
    "salary" : 90000,
    "type" : "FT"
}

Just like updateOne, we have updateMany() method to update multiple documents at once. I hope the article helped understand how to update document in mongodb using java.

update document in mongodb using java -摘自网络的更多相关文章

  1. mongodb 新建用户 -摘自网络

    随着版本的更新,对在使用mongodb的业务也进行了版本升级,但是在drop掉一个数据库时,问题来了,原来的用户随着删除库也被删除掉,但是再想通过原来的语法db.addUser()添加,一直报错,提示 ...

  2. MongoDB联合查询 -摘自网络

    1.简单手工关联 首先将结果查询出来放到一个变量里面,然后再查询 u = db.user.findOne({author:"wangwenlong"}); for(var p = ...

  3. MongoDB for Java

    开发环境 操作系统:Windows7 IDE: MyEclipse Database: MongoDB 开发依赖库 bson-3.0.1.jar mongodb-driver-3.0.1.jar mo ...

  4. Ubuntu14.04下Mongodb的Java API编程实例(手动项目或者maven项目)

    不多说,直接上干货! 若大家,不会安装的话,则请移步,随便挑选一种. Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04 ...

  5. [MongoDB]MongoDB与JAVA结合使用CRUD

    汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...

  6. 【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  7. 基于mongodb的java之增删改查(CRUD)

    1,下载驱动https://github.com/mongodb/mongo-java-driver/downloads,导入工程java中 2,建立测试代码 import java.net.Unkn ...

  8. [转]MongoDB for Java】Java操作MongoDB

    原文地址: MongoDB for Java]Java操作MongoDB 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开 ...

  9. mongodb在java驱动包下的操作(转)

    推荐几章很有用的文章 java操作参考文档 http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html http://blog.csdn. ...

随机推荐

  1. Android 手把手带你玩转自己定义相机

    本文已授权微信公众号<鸿洋>原创首发,转载请务必注明出处. 概述 相机差点儿是每一个APP都要用到的功能,万一老板让你定制相机方不方?反正我是有点方. 关于相机的两天奋斗总结免费送给你. ...

  2. 创建Python程序

    1. 创建Python程序 欢迎来到Python世界! 本系列文章告诉你怎么样编写Python程序.Python仅仅是一种文本文件.跟普通文本文件是一样的,仅仅只是这样的文本文件不但能够看,还能够在P ...

  3. Live555实战之交叉编译live555共享库

    作者:咕唧咕唧liukun321 来自:http://blog.csdn.net/liukun321 能够通过这个链接获得最新的live555源代码:Live555源代码下载 Live555 是一个为 ...

  4. Webwork【03】核心类 ServletDispatcher 的初始化

    1. Webwork 与 Xwork 搭建环境需要的的jar 为:webwork-core-1.0.jar,xwork-1.0.jar,搭建webwork 需要xwork 的jar呢?原因是这样的,W ...

  5. 每天五个java相关面试题(7)--线程篇

    首先关于线程能够先看我之前这篇博文熟悉一下线程生命周期的图示以及文字说明 好開始了: 1.java 中有几种方法能够实现一个线程? 答:有两种实现方法.各自是继承 Thread类与实现Runnable ...

  6. 关于RSA加密算法的工具类

    关于RSA加密算法的工具类 最近在捣鼓SSO(单点登录),就是一个在应用(系统)登录之后,当切换其他应用(系统)的时候,可以省去登录,提高用户的使用的便捷.(具体有时间在写) 期间涉及的安全问题,发送 ...

  7. Window磁盘错误修复chkdsk

    场景: 狗日的垃圾移动磁盘.U盘质量太差劲,会出现磁盘坏道.读写异常~心疼数据.... 命令: 01.Win+R 调出cmd 02.根据移动盘符或磁盘盘符,进行修复 03.执行修复chkdsk /f  ...

  8. Utils--封装好的下载图片的方法

    /** * 封装下载图片方法 * @param url 下载地址 * @param filename * @return 下载成功为true */ public boolean downfile(St ...

  9. Java概述与开发环境

    1.Java语言既是编译又是解释型的特点 Java没有设计成编译型语言,因为编译型语言效率高, 但可移植性差. Java也没有设计成纯解释型的语言, 因为解释型效率太低. 编译成class文件, 解释 ...

  10. 一个worker thread服务一个客户端

    服务器端对一个客户端来了就开启一个工作线程,最多可接受64个. 具体看代码: #pragma once #include <winsock.h> #include <stdio.h& ...