我在MongoDB中对我的Android应用程序有疑问,首先是“_id”默认情况下在Mongo中创建的唯一与否,我认为它必须是唯一的,但我在某处看到它有某些情况它会不是唯一的,所以如何让它在默认情况下是唯一的?
第二个疑问我实际上在我的应用程序中,当用户提出问题然后我用user_id将该问题的“_id”存储在user_upvotes集合中并在数组中推送“_id”。当我加载所有当前问题时,我必须在用户的upvotes数组中检查该用户是否通过将该问题“_id”与用户数组中的所有值匹配而对其进行了评价。
我的问题是,如果我知道如果所有“_ids”都是按照mongoDB的排序顺序创建的话我认为减少这个搜索时间,那么我将使用二进制搜索算法来减少时间,但我不知道它是否按顺序排列。
此外,如果默认情况下MongoDB本身不创建唯一的“_ids”,那么我不能使用二进制搜索,并且必须为问题制作自己独特的ID?
答案 0 :(得分:1)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<TextView android:text="@+id/TextView01" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
<Button
android:id="@+id/allow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/TextView01"
android:text="Allow"/>
<Button
android:id="@+id/deny"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/allow"
android:layout_alignTop="@id/allow"
android:text="Deny"/>
</RelativeLayout>
类型为_id
,在该集合中为guaranteed to be unique。ObjectId
不会对数组进行排序。数组按照您推送到它的项目的顺序排序。