默认情况下 MongoDB 个 ID 是否排序以及所有 ID 是否唯一?

Are MongoDB ids sorted by default and also whether all ids are unique or not?

我对我的 Android 应用程序的 MongoDB 有疑问,第一个是“_id”,它默认在 Mongo 中创建是否唯一,我认为是必须是唯一的,但我在某处读到过,有些情况下它不是唯一的,那么如何使其默认唯一?

我的第二个疑问实际上是在我的应用程序中,当用户对一个问题进行投票时,我将该问题的“_id”存储在 user_upvotes 集合中 user_id 并将该“_id”推送到一个数组中.当我加载所有当前问题时,我必须通过将问题“_id”与用户数组中的所有值匹配,在用户的投票数组中检查该用户是否已投票。

我的问题是,如果我知道如果所有“_id”默认情况下按 mongoDB 的排序顺序创建,那么我认为要减少搜索时间,那么我将使用二进制搜索算法来减少时间但是不知道是不是有序的

此外,如果 MongoDB 本身在默认情况下不创建唯一的“_id”,那么我不能使用二进制搜索并且必须为问题创建唯一的 ID?

  1. MongoDB 集合的默认 _id 类型是 ObjectId,即该集合中的 guaranteed to be unique
  2. _id 推入数组不会对数组进行排序。该数组按照您推送到它的项目的顺序排序。
  3. 一般来说,查询 MongoDB 会更好,因此依赖于它的搜索算法,而不是自己实施二进制搜索。