如何使用Java驱动程序3.4+在mongodb中计算带有ObjectId字段的唯一_id?

时间:2018-09-04 22:46:44

标签: java mongodb

我需要计算带有ObjectId字段的文档唯一_id。 我的文件如下: enter image description here

因此,我需要用唯一的_id来计数这些文档,然后使用replaceOne方法(而不要触摸文档的_id,因为_id field is immutable)来替换每个文档。

我知道我可以通过以下几种方式实现它:

1)使用FindIterable的迭代器获取文档计数:

FindIterable findIterable = collection.find(Filters.eq("_id" (this is field), ... (but how I need to write value here if each document has unique _id?) ));
        Iterator iterator = findIterable.iterator();
        int count = 0;
        while (iterator.hasNext()) {
            iterator.next();
            count++;
        }

2)或简单地将变量创建为long count = collection.count(Document.parse("_id : (this is field) " + ...(but how I need to write value here if each document has unique _id?)));

请更正我,或者告诉我如何用唯一的_id正确地替换这些文件,然后对它们进行计数?感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如@mtj所述,

  

ID在设计上是唯一的,因此唯一_id的数量等于   集合中文档的数量。换句话说:使用   <h1>Movies</h1> <ul> {% if user.is_authenticated %} {% for movie in movie_list %} <li>{{ movie.title }} - {{ movie.director }} - <button type="button">Add</button></li> {% empty %} <li>No movies yet.</li> {% endfor %} {% else %} {% for movie in movie_list %} <li>{{ movie.title }} - {{ movie.director }}</li> {% empty %} <li>No movies yet.</li> {% endfor %} {% endif %} </ul>