Multithreading MongoDB线程安全吗?
我正在Windows上运行MongoDB。我有一个或多个线程删除并重新创建集合 使用Multithreading MongoDB线程安全吗?,multithreading,mongodb,concurrency,thread-safety,document-database,Multithreading,Mongodb,Concurrency,Thread Safety,Document Database,我正在Windows上运行MongoDB。我有一个或多个线程删除并重新创建集合 使用mongo.exe和show collections()命令,我看到了多个同名的集合(超过1000个同名的集合!) 当我运行验证时: > db.MY_COLLECTION.validate() 我得到: { "errmsg" : "ns not found", "ok" : 0, "valid" : false } size()命令返回0,find()不返回任何内容 我的问题是:MongoDB线程安全吗
mongo.exe
和show collections()
命令,我看到了多个同名的集合(超过1000个同名的集合!)
当我运行验证时:
> 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除外,它是线程安全的)。类不是线程安全的,除非专门记录为线程安全的 所有类的所有静态属性和方法都是线程安全的 您可以在此页面上搜索单词Thread:
在2.2版中更改 MongoDB允许多个客户端使用锁定系统读取和写入单个数据集,以确保所有客户端接收到一致的数据视图,并防止多个应用程序同时修改完全相同的数据段。锁定有助于确保对单个文档的所有写入都以完整或完全不进行
上面的链接似乎不再处于活动状态。