在Java中,com.mongodb.client.MongoCollection接口提供了方法deleteMany()。使用此方法,您可以一次从集合中删除多个文档,为此,您需要通过指定删除条件的过滤器。
import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.bson.Document; import org.bson.conversions.Bson; import com.mongodb.MongoClient; public class DeletingMultipleDocuments { public static void main( String args[] ) { //创建一个MongoDB客户端 MongoClient mongo = new MongoClient( "localhost" , 27017 ); //连接到数据库 MongoDatabase database = mongo.getDatabase("myDatabase"); //创建一个收集对象 MongoCollection<Document>collection = database.getCollection("students"); Document document1 = new Document("name", "Ram").append("age", 26).append("city", "Delhi"); Document document2 = new Document("name", "Robert").append("age", 27).append("city", "Vishakhapatnam"); Document document3 = new Document("name", "Rhim").append("age", 30).append("city", "Delhi"); Document document4 = new Document("name", "Radha").append("age", 45).append("city", "Delhi"); Document document5 = new Document("name", "Sarmista").append("age", 35).append("city", "Mumbai"); //插入创建的文档 List<Document> list = new ArrayList<Document>(); list.add(document1); list.add(document2); list.add(document3); list.add(document4); list.add(document5); collection.insertMany(list); System.out.println("Documents Inserted"); System.out.println("集合的内容:"); FindIterable<Document> iterDoc = collection.find(); int i = 1; System.out.println("剩余文件:"); Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } collection = database.getCollection("students"); //删除多个文档 Bson filter = new Document("city", "Delhi"); collection.deleteMany(filter); System.out.println("Document deleted successfully..."); //删除操作后检索文档 iterDoc = collection.find(); System.out.println("剩余文件:"); it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } } }
输出结果
Documents Inserted 集合的内容: 剩余文件: Document{{_id=5e896b042e4a2f3badebddae, name=Ram, age=26, city=Delhi}} Document{{_id=5e896b042e4a2f3badebddaf, name=Robert, age=27, city=Vishakhapatnam}} Document{{_id=5e896b042e4a2f3badebddb0, name=Rhim, age=30, city=Delhi}} Document{{_id=5e896b042e4a2f3badebddb1, name=Radha, age=45, city=Delhi}} Document{{_id=5e896b042e4a2f3badebddb2, name=Sarmista, age=35, city=Mumbai}} Document deleted successfully... 剩余文件: Document{{_id=5e896b042e4a2f3badebddaf, name=Robert, age=27, city=Vishakhapatnam}} Document{{_id=5e896b042e4a2f3badebddb2, name=Sarmista, age=35, city=Mumbai}}
我知道如何。。。 删除单个文档。 但我不知道如何删除Mongoose收藏中的所有文档。我想在用户单击按钮时执行此操作。我假设我需要向某个endpoint发送AJAX请求并让该endpoint进行删除,但我不知道如何在endpoint处处理删除。 在我的例子中,我有一个集合,我想在用户单击按钮时删除所有文档。 api/datetime/index.js API/datetime/datetime.c
当我试图在MongoDB中删除集合中的文档时。它没有删除,因为集合已被封顶。我的问题是为什么?在这种情况下,是否有解决方案或其他功能可以删除文档?
我必须通过 Azure 门户从 azure cosmos DB 中删除一些文档。我在容器中编写了一个存储过程,它将删除必须删除的数据。但是在执行存储过程时,它将要求提供分区键值。我必须删除具有不同分区键的文档。 下面给出了使用的存储过程。 假设我的分区键是车辆类型,并且我的车辆类型值为01到10。根据我的要求,sql查询将返回具有10个不同分区键值的文档。 当前方案就像我必须通过每次提供每个分区键
我在Java有一个集合数组列表。 例如,当我这样做时: 测试是集合。 为什么我得到的结果是:[jamesbond] 我只想要jamesbond,但为什么他们也给我[]?
问题内容: 我有一个(尽管我猜这个问题也适用于其他集合)对象。据我了解,当文档讨论删除映射时,那么它就是从哈希表中删除条目,即不一定破坏实际对象。如果该表中唯一剩余的对该对象的引用,那么该对象会被垃圾回收吗? 如果我这样做了,并且表中的那些对象没有在其他任何地方引用,它们会被垃圾回收吗? 最快的方法是实际从表中删除所有条目,同时销毁那些对象。 问题答案: 是的,如果集合是最后引用这些对象的地方,则
所以我有2个系列, 用户(收藏) 检查(收集) 用户只有名为不同电子邮件地址的文档 检查将文档命名为不同的电子邮件地址,然后每个文档都有另一个名为“assignedToMe”的集合,然后此集合具有命名为某些唯一 ID 的不同文档。 我想做的是,每当我删除一个用户,我希望它的文件命名为他的电子邮件地址被删除,以及从检查(收集)。 我在这里遇到的问题是,我能够从用户(集合)中删除该用户,但无法删除该特