`

Java MongoDB : Delete document(译)

阅读更多

 

原文出自:http://www.mkyong.com/mongodb/java-mongodb-delete-document/

返回目录:http://ysj5125094.iteye.com/blog/2192754  

 

Java MongoDB : Delete document

In this tutorial, we show you how to use collection.remove() to delete documents from the collection.

译:在本教程中,我们将向你展示使用 collection.remove() 从集合中删除文档。

1. Test Data

Insert 10 documents from number 1 to 10 for testing.

译:插入number 为 1 到 10的 10条文档。

 

for (int i=1; i <= 10; i++) {
    collection.insert(new BasicDBObject().append("number", i));
}

 

2. DBCollection.remove()

See below code snippets to delete documents.(译:看下面删除文档的代码片断)

Example 1

Get first document and delete it. In this case, number = 1 is deleted. 

译:获取第一个文档并删除他,相当于删除number = 1的文档。

 

	DBObject doc = collection.findOne(); //get first document
	collection.remove(doc);

 

Example 2

Puts query in a BasicDBObject. In this case, number = 2 is deleted. 

译:向BasicDBObject对象中put一个number = 2 ,再删除。

 

	BasicDBObject document = new BasicDBObject();
	document.put("number", 2);
	collection.remove(document);

 

 

And Operator?(译:and 操作符)

 

Two common mistakes :(译:两个常见的错误)

1. A query like this only delete number = 3.

译:只删除number=3的。

	BasicDBObject document = new BasicDBObject();
	document.put("number", 2);
        document.put("number", 3); //override above value 2,会重写上面的值
	collection.remove(document);

2. Nice try below, but query like this will not work, it will delete NOTHING.

译:这是种不错的尝试,但是这种尝试,将不会删除任何数据。

	BasicDBObject document = new BasicDBObject();
	List<Integer> list = new ArrayList<Integer>();
	list.add(7);
	list.add(8);
	document.put("number", list);
	collection.remove(document);

 

For “AND” query, you need to use “$in” or “$and” operator, see example 5.

译:使用"AND"查询,你需要使用"$in" 或 "$and"操作符,see example 5.

 

Example 3

Use BasicDBObject directly. In this case, number = 3 is deleted.

译:直接使用BasicDBObject 对象。在这种情况下,number=3是可以删除的。

 

collection.remove(new BasicDBObject().append("number", 3));

 

Example 4

Puts a $gt operator in a BasicDBObject object. In this case, number = 10 is deleted. 

译:将 $gt 操作符put BasicDBObject对象。在这种情况下,number=10是可以删除的。

 

	BasicDBObject query = new BasicDBObject();
	query.put("number", new BasicDBObject("$gt", 9));
	collection.remove(query);

 

Example 5

Puts a $in operator in a BasicDBObject object, constructs the query in ArrayList. In this case, number = 4 and number = 5 are deleted. 

译:put一个 $in 操作符到 BasicDBObject 对象,构建查询列表。在这种情况下,number=4和number=5被删除。

 

	BasicDBObject query2 = new BasicDBObject();
	List<Integer> list = new ArrayList<Integer>();
	list.add(4);
	list.add(5);
	query2.put("number", new BasicDBObject("$in", list));
	collection.remove(query2);

More MongoDB Operators
For more operators, read this MongoDB operators quick reference. 

 

译:更多操作符,请阅读此文档(MongoDB operators quick reference.)。

 

Example 6

Use cursor to delete all available documents. (Not recommended, prefer example 7)

译:使用游标,删除所有可用文档(不推荐使用,建议选择example 7)

 

	DBCursor cursor = collection.find();
	while (cursor.hasNext()) {
		collection.remove(cursor.next());
	}

 

Example 7

Pass an empty BasicDBObject, and the entire documents will be deleted. 

译:传递一个空的 BasicDBObject 对象,整个文档会被删除。

 

collection.remove(new BasicDBObject());

 

Example 8

It deletes the entire documents and drop the collection. 

译:删除所有文档及整个集合。

 

collection.drop();

 

Example 9

The remove() will returns a WrireResult object, it contains useful information about the remove operation. And you can uses getN() to get the number of documents affected. 

译:使用 remove() 命令将返回一个 WrireResult 对象,他包含删除操作的信息,你可以使用 getN() 方法得到影响文档的行数。

       WriteResult result = collection.remove(query2);
       System.out.println("Number of documents are deleted : " + result.getN());

3. Full Example

Full example to show the different ways to delete documents. 

package com.mkyong.core;
 
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
 
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
 
/**
 * Java MongoDB : Delete document
 * @author mkyong
 */
 
public class App {
    public static void main(String[] args) {
 
      try {
 
	Mongo mongo = new Mongo("localhost", 27017);
	DB db = mongo.getDB("yourdb");
 
	// get a single collection
	DBCollection collection = db.getCollection("dummyColl");
 
	//insert number 1 to 10 for testing
	for (int i=1; i <= 10; i++) {
		collection.insert(new BasicDBObject().append("number", i));
	}
 
	//remove number = 1
	DBObject doc = collection.findOne(); //get first document
	collection.remove(doc);
 
	//remove number = 2
	BasicDBObject document = new BasicDBObject();
	document.put("number", 2);
	collection.remove(document);
 
	//remove number = 3
	collection.remove(new BasicDBObject().append("number", 3));
 
	//remove number > 9 , means delete number = 10
	BasicDBObject query = new BasicDBObject();
	query.put("number", new BasicDBObject("$gt", 9));
	collection.remove(query);
 
	//remove number = 4 and 5
	BasicDBObject query2 = new BasicDBObject();
	List<Integer> list = new ArrayList<Integer>();
	list.add(4);
	list.add(5);
	query2.put("number", new BasicDBObject("$in", list));
	collection.remove(query2);
 
	//print out the document
	DBCursor cursor = collection.find();
        while(cursor.hasNext()) {
             System.out.println(cursor.next());
        }
 
        collection.drop();
 
        System.out.println("Done");
 
      } catch (UnknownHostException e) {
	e.printStackTrace();
      } catch (MongoException e) {
	e.printStackTrace();
      }
 
   }
}

Output… 

{ "_id" : { "$oid" : "4dc7a6989e3a66c5faeee757"} , "number" : 6}
{ "_id" : { "$oid" : "4dc7a6989e3a66c5faeee758"} , "number" : 7}
{ "_id" : { "$oid" : "4dc7a6989e3a66c5faeee759"} , "number" : 8}
{ "_id" : { "$oid" : "4dc7a6989e3a66c5faeee75a"} , "number" : 9}
Done

References

  1. MongoDB operators quick reference
  2. MongoDB WriteResult JavaDoc

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    java 操作mongodb 增删改查

    在Java编程环境中,MongoDB是一个广泛使用的文档型数据库,它以JSON格式存储数据,提供了高性能、高可用性和可扩展性。本教程将详细介绍如何使用Java进行MongoDB的基本操作,包括增(添加数据)、删(删除数据)、改...

    Mongodb + GridFS +Java 操作Mongodb中存储的文件

    在这个Java操作MongoDB中存储的文件实例中,我们将探讨如何利用GridFS API进行文件的存取。 首先,我们需要在Java项目中引入MongoDB的驱动库。目前,Java驱动通常使用的是MongoDB Java Driver,可以在Maven仓库中...

    MongoDBjava各版本驱动下载

    MongoDB Java驱动是Java开发者与MongoDB数据库交互的重要工具,它允许Java应用程序通过标准的Java API来执行查询、插入、更新和删除等操作。在Java中使用MongoDB,首先需要安装并配置对应的驱动版本,以确保与正在...

    java实现mongodb数据库的操作

    4. Document:用来构建和操作MongoDB文档的类,类似于JSON对象。 三、安装MongoDB 在使用Java驱动之前,首先需要在本地或服务器上安装MongoDB。通常,可以从官方网站下载对应操作系统的安装包,按照安装指南完成...

    Mongodb数据库JAVA操作例子

    在Java应用程序中,我们通常使用Java驱动程序来与MongoDB进行交互。本篇将详细介绍如何利用Java实现MongoDB数据库的增、删、改、查(CRUD)操作。 1. **连接MongoDB** 要使用Java连接MongoDB,首先需要引入MongoDB...

    java操作mongoDB(CRUD)

    Java操作MongoDB主要涉及到的是Java驱动程序与MongoDB数据库之间的交互,这涵盖了创建连接、执行CRUD(创建、读取、更新、删除)操作等一系列基本的数据库管理任务。MongoDB是一个流行的NoSQL数据库,以其灵活性、高...

    MongoDB之Java使用例子

    在这个“MongoDB之Java使用例子”中,我们将深入探讨如何在Java环境中操作MongoDB数据库,包括增、删、改、查(CRUD)操作以及图像数据的存储和检索。 首先,Java与MongoDB的交互主要通过MongoDB的Java驱动程序实现...

    java连接mongodb3.4.2所需jar

    Java连接MongoDB 3.4.2主要涉及的是Java驱动程序的使用,这些驱动程序是MongoDB官方提供的Java API,允许Java开发者与MongoDB数据库进行交互。在给定的文件列表中,我们可以看到三个关键的JAR文件: 1. `mongodb-...

    mongodb_java_demo

    Java驱动程序(mongodb_java_driver)是MongoDB官方提供的用于Java应用程序与MongoDB交互的库,它允许开发者通过简单的API来执行各种数据库操作,如增、删、改、查。 在"mongodb_java_demo"这个项目中,我们将深入...

    java连接mongodb.zip

    在这个“java连接mongodb.zip”压缩包中,包含了实现这一连接所需的两个关键元素:mongo-java-driver-3.11.2.jar(MongoDB的Java驱动程序)和MongoDBClient.java(一个可能包含连接MongoDB实例的Java源代码示例)。...

    MongoDB Java Demo

    MongoDB Java Demo是一个示例项目,它展示了如何在Java应用程序中使用MongoDB数据库。MongoDB是一种流行的NoSQL数据库,以其灵活性、高性能和易用性而闻名。与传统的SQL数据库不同,MongoDB使用文档型数据模型,支持...

    Java操作MongoDB之CRUD(增删改查)

    这篇博文“Java操作MongoDB之CRUD(增删改查)”主要探讨了如何使用Java驱动程序来执行基本的数据库操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们来了解MongoDB的Java驱动...

    java 连接mongodb的操作

    Java连接MongoDB是Java开发中常见的一项任务,用于与NoSQL数据库进行交互。MongoDB是一个高性能、开源、无模式的文档型数据库,广泛应用于数据存储和处理。在Java环境中,我们通常使用MongoDB的Java驱动程序来实现...

    mongodb java简单demo

    在Java开发中,我们通常使用Java驱动程序来与MongoDB进行交互。本篇将详细介绍如何使用Java连接MongoDB,以及进行基本的数据操作:创建集合、添加文档、修改文档、查询文档和删除文档。 首先,为了连接MongoDB,...

    mongodb java Driver

    MongoDB Java驱动程序是Java开发者用来与MongoDB数据库进行交互的一种关键工具。它提供了一组丰富的API,使得在Java应用程序中执行CRUD(创建、读取、更新、删除)操作变得简单而高效。MongoDB是一个分布式文档存储...

    mongodb_java_2.6_API

    MongoDB的数据模型是基于BSON(Binary JSON),在Java API中表现为`Document`类。可以创建、修改和操作`Document`对象,然后将其存储到集合中。 ```java Document doc = new Document("name", "John").append(...

    Java MongoDB 增删改查Demo程序

    在本文中,我们将深入探讨如何使用Java来与MongoDB数据库进行交互,主要涵盖增、删、改、查(CRUD)等基本操作。MongoDB是一个流行的NoSQL数据库系统,以其灵活性、高性能和易于扩展性而受到开发者的青睐。Java作为...

    Java mongodb CRUD 操作代码

    在本文中,我们将深入探讨如何使用Java进行MongoDB的基本CRUD操作,以及如何处理图片的存储、读取和删除。MongoDB是一个流行的NoSQL数据库,它以JSON格式存储数据,而Java是与其交互的常用编程语言。让我们开始探索...

    java连接Mongodb进行增删改查_java连接Mongodb进行增删改查_curiousjop_depthklb_Mong

    在Java编程中,MongoDB是一个常用的NoSQL数据库,它的灵活性和高性能使得它在处理大量非结构化数据时非常受欢迎。本篇文章将详细讲解如何使用Java连接到MongoDB数据库,并进行基本的增删改查操作。 首先,连接...

    mongodb:使用Java的Mongodb

    在Java应用程序中使用MongoDB,可以利用其灵活性和高性能特性,为现代Web应用和大数据处理提供强大的数据存储解决方案。 Java驱动程序是连接Java应用程序与MongoDB服务器的关键组件。MongoDB官方提供了Java驱动程序...

Global site tag (gtag.js) - Google Analytics