Facebook user_id为MongoDB BSON ObjectId?

我正在与Sinatra& amp;重建
Lovers on Facebook Redis的.我喜欢Redis,因为它没有长(12字节)
BSON ObjectIds,我为每个用户存储了一组Facebook user_ids.这些集合是requests_sent,requests_received和&关系,它们都包含Facebook用户ID.

我正在考虑切换到MongoDB,因为我想使用它的地理空间索引.如果我这样做,我想使用FB用户ID作为_id字段,因为我希望集合很小,我希望JSON响应很小.但是,BSON ObjectId是否比使用整数(fb user_id)更好(使用MongoDB更高效)?

最佳答案 据我所知,没有重大的效率差异,除非在某些情况下,例如按日期排序(因为ObjectId中有日期时间,等等)

例如,你失去了通过_id简单排序的能力,你也失去了sharding and distribution的好处.除此之外,虽然我仍然个人使用ObjectId无论如何…只要int是unquie(的当然)…你应该没问题.

由于_id总是在一个查询中“回来”,我想你会节省一点时间和数据传输(一点点).

如果你愿意的话,你甚至可以让你的_id成为一个数组,并且所有索引都能很好地看到这个answer(不是我大多数时候都必须推荐的.)

另见:Optimizing Object IDs

点赞