使用db.currentOp()时,我有时会看到以下操作:
{
"opid" : 1238664,
"active" : false,
"lockType" : "read",
"waitingForLock" : true,
"op" : "query",
.....
"desc" : "conn"
}
为什么读取操作需要等待锁定?有没有办法告诉查询忽略任何挂起的写入,然后继续阅读?
答案 0 :(得分:2)
由于mongodb索引以同步方式工作,因此无法告诉查询忽略挂起的写入。这是设计的。
例如,RavenDB中的索引可以以异步和同步方式工作。所以你可能需要ravendb(如果你在windows上);)
为什么MongoDB中的读取有时会等待锁定?
他们正在等待索引重建。