例如,我想删除10%的对象。
我得到了集合,并按时间对其进行了排序。现在我有一个迭代器。我想说删除,但是它不起作用。清除不起作用。如何仅删除第一个对象?
尝试1
MongoCursor<Document> cursor = collection.find().sort(new BasicDBObject("utc-stamp", 1)).iterator();
while (cursor.hasNext()) {
Document document = (Document) cursor.next();
document.clear();
}
试试2
MongoCursor<Document> iterator = collection.find().sort(new BasicDBObject("utc-stamp", 1)).iterator();
for(int i = 0; i< collection.count()-2; i++) {
iterator.next().clear();
}
while (iterator.hasNext()) {
docs.add(iterator.next());
}
我不知道。我可以获得集合的名称和对象的大小。
我希望你能帮助我。
最佳答案
collection.deleteOne(document);
您必须调用集合上的delete操作才能从集合中删除文档。请参考official documentation。
注意:如果要删除100个文档,则会进行100个单独的DB删除调用。另外,请考虑@Siddharth Ajmera的建议使用上限集合。