【发布时间】:2020-03-19 19:38:50
【问题描述】:
我知道 findOne 在以下列方式使用时是常数时间:
collection.findOne(aString)
但是,当查询不是_id 的索引字段时,我似乎无法确定它是否仍然是常数时间。例如,我有一个镜像外部 API 的集合。在此集合中,有一个单独的 id 字段已编入索引。
我的问题是,collection.findOne({ id: anId }) 仍然是固定时间吗?
【问题讨论】:
我知道 findOne 在以下列方式使用时是常数时间:
collection.findOne(aString)
但是,当查询不是_id 的索引字段时,我似乎无法确定它是否仍然是常数时间。例如,我有一个镜像外部 API 的集合。在此集合中,有一个单独的 id 字段已编入索引。
我的问题是,collection.findOne({ id: anId }) 仍然是固定时间吗?
【问题讨论】:
是的。来自 minimongo 文档:“在内部,所有文档都映射在单个 JS 对象中,从 _id 到文档。除了这种映射,Minimongo 不实现任何类型的二级索引。”
来源:https://github.com/meteor/meteor/tree/master/packages/minimongo
【讨论】:
minimongo 中只有一个索引(主索引),它在 _id 上
【讨论】:
collection.findOne({ id: anId ]) 仍然是恒定时间吗?