[英]Is MongoDB thread-safe?
我在 Windows 上運行 MongoDB。 我有 1 個或多個線程刪除並重新創建一個集合。
使用帶有show collections()
命令的mongo.exe
,我看到多個具有相同名稱的 collections(遠超過 1,000 個具有相同名稱的 collections。)。
當我運行驗證時:
> db.MY_COLLECTION.validate()
我得到:
{ "errmsg" : "ns not found", "ok" : 0, "valid" : false }
size()
命令返回 0, find()
什么也不返回。
我的問題是:MongoDB 線程安全嗎? 后續問題將類似於“我是否正確地執行此操作(刪除和重新創建)或者是否有更好的方法來刷新集合的全部內容?”
來自 mongodb 文檔:
線程安全
只有少數 C# 驅動程序類是線程安全的。 其中:MongoServer、MongoDatabase、MongoCollection 和 MongoGridFS。 您將經常使用的非線程安全的常見類包括 MongoCursor 和 BSON 庫中的所有類(線程安全的 BsonSymbolTable 除外)。 class 不是線程安全的,除非特別記錄為線程安全。
所有類的所有 static 屬性和方法都是線程安全的。
您可以在此頁面上搜索 Thread 一詞:
在 2.2 版中更改。
MongoDB 允許多個客戶端使用鎖定系統讀取和寫入單個數據語料庫,以確保所有客戶端接收到一致的數據視圖並防止多個應用程序同時修改完全相同的數據。 鎖有助於保證對單個文檔的所有寫入要么全部發生,要么根本不發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.