MongoDBのSpringデータでは、 `remove()`と `findAndRemove()`を使ってMongoDBから文書を削除することができます。

  1. remove() – 単一または複数の文書を削除します.

  2. findAndRemove() – 単一のドキュメントを削除し、削除されたドキュメントを返します.

資料。

1.ドキュメントの例を削除する

remove()およびfindAndRemove()の使用方法を示す完全な例を参照してください。

package com.mkyong.core;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;

import com.mkyong.config.SpringMongoConfig;
import com.mkyong.model.User;
/** **
 **  Delete example
 **
 **  @author mkyong
 **
 ** /
public class DeleteApp {

    public static void main(String[]args) {

        ApplicationContext ctx =
                      new AnnotationConfigApplicationContext(SpringMongoConfig.class);
        MongoOperations mongoOperation =
                      (MongoOperations) ctx.getBean("mongoTemplate");

       //insert 6 users for testing
        List<User> users = new ArrayList<User>();

        User user1 = new User("1001", "ant", 10);
        User user2 = new User("1002", "bird", 20);
        User user3 = new User("1003", "cat", 30);
        User user4 = new User("1004", "dog", 40);
        User user5 = new User("1005", "elephant", 50);
        User user6 = new User("1006", "frog", 60);
        users.add(user1);
        users.add(user2);
        users.add(user3);
        users.add(user4);
        users.add(user5);
        users.add(user6);
        mongoOperation.insert(users, User.class);

        Query query1 = new Query();
        query1.addCriteria(Criteria.where("name").exists(true)
            .orOperator(
                           Criteria.where("name").is("frog"),
                           Criteria.where("name").is("dog")
                        ));
        mongoOperation.remove(query1, User.class);

        Query query2 = new Query();
        query2.addCriteria(Criteria.where("name").is("bird"));
        User userTest2 = mongoOperation.findOne(query2, User.class);
        mongoOperation.remove(userTest2);

       //The first document that matches the query is returned and also
       //removed from the collection in the database.
        Query query3 = new Query();
        query3.addCriteria(Criteria.where("name").is("ant"));
        User userTest3 = mongoOperation.findAndRemove(query3, User.class);
        System.out.println("Deleted document : " + userTest3);

       //either cat or elephant is deleted only,
               //common mistake, don't use for batch delete.
       /**
          Query query4 = new Query();
                  query4.addCriteria(Criteria.where("name") .exists(true)
               .orOperator(
                             Criteria.where("name").is("cat"),
                     Criteria.where("name").is("elephant")
                        )
                  );
          mongoOperation.findAndRemove(query4, User.class);
          System.out.println("Deleted document : " + userTest4);
         ** /
        System.out.println("\nAll users : ");
        List<User> allUsers = mongoOperation.findAll(User.class);
        for (User user : allUsers) {
            System.out.println(user);
        }

        mongoOperation.dropCollection(User.class);

    }

}


出力

Deleted document : User[id=5162e0153004c3cb0a907370, ic=1001, name=ant, age=10]
All users :
User[id=5162e0153004c3cb0a907372, ic=1003, name=cat, age=30]User[id=5162e0153004c3cb0a907374, ic=1005, name=elephant, age=50]....

=== ソースコードをダウンロードする

ダウンロードする -  link://wp-content/uploads/2011/05/SpringMongoDB-Delete-Example.zip[SpringMongoDB-Delete-Example.zip](24 KB)

=== 参考文献

.  http://static.springsource.org/spring-data/mongodb/docs/current/reference/html/mongo.core.html#mongo-template.save-update-remove[Saving、

MongoDBからのドキュメントの更新、削除
。リンク://mongodb/java-mongodb-delete-document/[Java MongoDB delete

例/]

リンク://タグ/削除/[削除]リンク://タグ/mongodb/[mongodb]link://tag/spring-data/[spring-data]