这个问题有点奇怪,但我在我当前的实现中碰到了它:
我想对我的应用程序中的所有内容进行特权插入,我想到命令 $hint 也可以用来让 mongo 不使用索引。
那可能吗?考虑到 $hint 应该做什么,这是一个合理的问题吗?
谢谢
我认为插入的工作方式与您的想法不同。
插入将根据集合本身的索引数量将其需要的字段编入 btree。因此,要获得特权插入,您必须销毁集合上的所有索引。
因此,使用$natural
顺序提示对读写顺序没有影响。更不用说$natural
order 是磁盘插入索引,只是一个您无法在查询中有效使用的索引,因此它将强制进行全表扫描。
但是,这实际上并没有任何特权,因为维护 btree 是插入数据的一部分,因此无法通过索引来确定插入的优先级。
此外,写锁和读锁是两个完全不同的东西,所以我再次不确定你的问题是否有意义。
您是否更喜欢寻找原子锁以确保在读取数据之前更新或放入数据?