草庐IT

mongodb.driver

全部标签

performance - mongodb 许多插入\更新性能

我正在使用mongodb来存储用户的事件,每个用户都有一个文档,其中包含一系列事件。系统每分钟处理数千个事件,并将每个事件插入到mongo。问题是我的更新操作性能不佳,使用分析器,我注意到WriteResult.getError是导致性能影响的那个。这是有道理的,更新是异步的,但是如果要检索操作结果,他需要等到操作完成。我的问题是,有没有办法保持更新异步,但只有在发生错误时才会出现异常(99.999次没有错误,所以系统什么都不等待)。我知道这意味着异常将在流程中更靠后的某个地方引发,但我可以接受。还有什么建议吗?该应用程序是用Java编写的,因此我们使用的是Java驱动程序,但我不确定

mongodb - 内存映射存储引擎

从MongoDb的网站上看,目前唯一支持的存储引擎是Memory-MappedStorageEngine。我想知道它如何在系统崩溃(即电源故障)的情况下支持原子性?它取决于操作系统吗?有关于这个话题的引用资料吗?与以下相比,这种设计的优缺点是什么:couchdb的crashonly设计依赖于appendonlyb+tree。sqlite'srollbackjournalfile谢谢 最佳答案 这是您要查找的页面:http://www.mongodb.org/display/DOCS/Durability+and+Repair

mongodb - 在 Mongo 中使用具有两级层次结构的位置运算符

我有一个层次结构,比方说,posts->comments->votes。如何更新对特定评论的特定投票?对于评论,它是comments.$,但我显然不能做comments.$.votes.$。 最佳答案 你现在不能这样做(jira中有这样的bug)。但我想您可以使用服务器端javascript进行更新。检查这个article了解更多详情。另一种方法是将您的数据库方案重新设计到一个深度,例如在帖子->评论->投票的情况下将评论(甚至投票)移动到单独的集合中。 关于mongodb-在Mongo

c# - MongoDB C# 数组索引或索引数组的内部项

我用一个动态数组存储key,value,type在dynamicArray中。MongoDB/C#通常使用数组索引,如db.contents.ensureIndex({dynamicArray:1})。存储超过30或40个元素正在生成大量信息以使用此方法进行索引。存在另一种方法来索引不是完整的数组而是限制索引存储的数组的项目键。类似于->索引键:名称,索引键:城市而不是全部。dynamicArray:{item:{Key:"Name",Value:"Peter",Type:String}item:{Key:"Age",Value:"18",Type:int}item:{Key:"Cit

c# - 评论的MongoDB文档设计(及其回复评论)

我有一个看起来像这样的模型:classComment{publicstringID{get;set;}publicstringArticleType{get;set;}publicstringArticleID{get;set;}publicstringBody{get;set;}publicDateTimeDateCreated{get;set;}publicstringUserID{get;set;}}我正在创建一个应用程序来存储对我们应用程序中其他内容的评论例如,如果评论是关于产品的,则ArticleType可以是“product”,而ArticleID将是产品ID...我打算用

php - 使用 PHP 为 mongodb $id 索引提供我自己的值

我想在mongodb$id字段中插入我自己的唯一值我已经有一个唯一的键,我不想再用另一个索引占用额外的空间。如何使用PHPAPI执行此操作? 最佳答案 $collection->save(array('_id'=>newMongoId('my_mongo_id'),'foo'=>'bar')); 关于php-使用PHP为mongodb$id索引提供我自己的值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

ruby-on-rails - 如何在 MongoDB 中为广告工具构建数据模型

我正在构建一个采用如下数据结构的广告分析工具:帐号事件关键词转化我有很多关于单个转化事件的信息,这些信息可以与每个事件、关键字、广告组等的成本数据联系起来。在SQL中,您可以将每个属性视为一种外键(文本-基于)到特定帐户中的广告系列、关键字或广告,但这效率低下且速度慢。制作campaign_id、keyword_id等字段并填充它们听起来不是一个好主意,因为我希望分析几乎实时可用。用MongoDB对此建模的好方法是什么? 最佳答案 假设转换事件量非常大(每天数百万或更多),单靠存储引擎(MongoDB或其他任何引擎)将无济于事。您需

mongodb - Mongoid:检查现有文档/嵌入文档

是否有通过mongoid检查现有文档的首选方法?如果我执行Model.find('id')',id为nil或文档不存在,它会抛出异常...我希望它返回一个空的数组。如果我执行Model.where(:id=>'id'),并且id为nil,它会返回所有文档...我还希望它返回一个空数组。然后使用Model.criteria(:id=>'id').to_a,无论出于何种原因永远不会返回结果,即使具有有效的对象ID。不知道那里发生了什么......但基本上对于activerecord,我只会使用exists?查找器方法,所以我正在寻找mongoid替代方法。 最佳

ruby-on-rails - 将这些值存储在 mongodb 中的最干净的方法?

我正在将一系列user_id添加到mongodb文档中,每个用户都有一个1到9之间的关联数字。但这不是必需的顺序。那么将它添加到我的文档中是否更有意义:{"4"=>"user_id1","7"=>"user_id2"}或[nil,nil,nil,"user_id1",nil,nil,"user_id2"](知道有偏移量)我的感觉是,就资源和访问时间而言,使用散列更快,但使用数组更简洁,逻辑更合理。 最佳答案 如果使用数组更简洁并且更符合逻辑那么您应该使用数组。您只有九个条目,因此除非您要处理数以百万计的条目,否则任何空间节省都是无关

mongodb - YCSB - 为什么我在互联网上的任何地方都找不到分片配置

我看到各种关于MongoDB的引用,作为YCSB基准测试的客户端,以测试NoSQL数据库服务器的可扩展性/弹性。https://github.com/brianfrankcooper/YCSB但是,很明显基准测试需要某种分片设置,因为测试设计为在6到10台服务器计算机上运行以显示扩展性和弹性。我无法在Internet上找到任何有关MongoDB配置的引用资料。我找不到任何发布结果的人也发布了他们的配置。这件事真的做成功了吗?与Cassandra、HBase等原始YCSB客户端相比,结果如何。我特别困惑,因为在MongoDB客户端的代码中它读到......“每个客户端线程有一个数据库实例