MongoDBのSpringデータでは、 `remove()`と `findAndRemove()`を使ってMongoDBから文書を削除することができます。
-
remove() – 単一または複数の文書を削除します.
-
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]