例如,我想删除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的建议使用上限集合。

10-07 19:01
查看更多