这是我要使用的示例文档。
{
"_id" : ObjectId("5cc6ccec131355bb173c64ba"),
"username" : "user1",
"firstname" : "john",
"lastname" : "doe"
}
我每次都需要使用username
字段查找文档。
我使用了hashed index
,但是不允许将其设置为unique
字段。
{
"ok" : 0,
"errmsg" : "Currently hashed indexes cannot guarantee uniqueness. Use a regular index.",
"code" : 16764,
"codeName" : "Location16764"
}
如果大约有100万个商品,那么通过username
字段查找商品的最快方法是什么?
答案 0 :(得分:1)
选项1: 创建一个唯一索引。即使拥有100万条记录,我也不会遇到任何性能问题。即使在5个成员的副本集中,集合的大小超过10亿,我也可以获得不错的性能。
System.Net.Sockets.NetworkStream.Read (Byte [] buffer, Int32 offset, Int32 size)
选项2: 将用户名存储到_id字段中,因为您知道它是唯一的。您将失去使用_id字段检测记录创建时间的功能,因此,如果需要此功能,则需要使用时间戳存储另一个字段。