草庐IT

Indexing

全部标签

mongodb - 蒙哥错误: E11000 duplicate key error collection for unique compound index

Questionisrelatedtouniquecompoundindexunlikeothersuchquestionswhichhaveuniqueindexonly.Ialsohavesparse:truefortheindexes.我的收藏中有以下索引[{"v":2,"key":{"_id":1},"name":"_id_","ns":"somedb.votes"},{"v":2,"key":{"answerId":1},"name":"answerId_1","ns":"somedb.votes","sparse":true,"background":true},{"v":

performance - 缓慢的 MongoDB 查询 : can you explain why?

我有一个MongoDB查询,运行时间过长,但它:仅扫描6个对象点击索引持续花费约1500毫秒(没有分页或其他占用)mongostat中的索引miss%为0它出现在分析器中(没有explain()),我不明白为什么这么慢。有什么想法吗?gimmebar:PRIMARY>db.assets.find({owner:"123",avatar:false,private:false}).sort({date:-1}).explain(){"cursor":"BtreeCursorowner_1_avatar_1_date_-1","nscanned":6,"nscannedObjects":6

mongodb - 向 MongoDB 集合哈希字段添加索引

我有一个MongoDB集合,我想为其添加索引。出于本文的目的,假设集合名称是Cats。我在Cats集合上有一个散列键,所以如果您执行db.cats.findOne();,它将如下所示:>db.cats.findOne();{"_id":ObjectId("4f248f8ae4b0b775c9eb002d"),"metaData":{"type":"cute","id":"4ed3b6c599114b488be52bc3"},....}我经常查询(使用Mongoid),像这样:Cat.first(:conditions=>{"metaData.id"=>an_id}我真的很想在这里利用索

MongoDB 索引 (ensureIndex)

例如我收集了这样的文档foo:{"tag_cloud":[{"value":"games","count":10},{"value":"girls","count":500}]}{"tag_cloud":[{"value":"games","count":5},{"value":"stack","count":100}]}{"tag_cloud":[{"value":"mongodb","count":1000},{"value":"thread","count":15}]}两种索引有什么区别:ensureIndex({"tag_cloud"})ensureIndex({"tag_cl

mongodb - 如何在 MongoDB 集合中存储描述文档的元数据?

在MongoDB中存储描述集合的元数据的最佳方式是什么?我有一个集合,其中包含任意数量且不断变化的文档。当我创建新文档时,我想根据当前集合中的文档数量分配一个新的临时名称(字符串),例如"Doc1","Doc2",...由于可以删除文档,因此仅执行count()不会产生有用的结果。一种选择是将描述一个集合的元数据存储在不同的集合中,但这看起来很尴尬。由于Mongo是无模式的,我可以将集合的元数据保存在集合本身中,也许在名为“元数据”的文档中。在那种情况下,我将如何快速访问该文档?我是否需要为“元数据”建立索引以立即获取它,而不需要O(n)的搜索时间?是否有比我在上一段中描述的方法更标准

mongodb - Mongo 最大索引大小

蒙戈Docs讨论最大索引大小。IndexKeyThetotalsizeofanindexedvaluemustbelessthan1024bytes.MongoDBwillnotaddthatvaluetoanindexifitislongerthan1024bytes.使用db.collection.stats(),我可以看到我的平均文档大小为5MB。如果我在占文档50%的字段上建立索引,是否意味着索引大小将是50%*5MB=2.5MB?我对如何为单个文档计算索引大小感到困惑。 最佳答案 我不确定您为什么要尝试索引如此大的字段,但

java - 使用java在mongodb中创建具有多个字段的索引

我是MongoDB的新手。默认情况下,mongodb中的集合在_id字段上有索引。我需要使用Java在另外2个字段上创建索引。DBObjectindexOptions=newBasicDBObject();indexOptions.put(field_1,1);indexOptions.put(field_2,-1);collection.createIndex(indexOptions)当我使用db.collection_name.getIndexes()在mongodb中查询时[{"v":1,"key":{"_id":1},"name":"_id_","ns":"schema.co

mongodb - pymongo 中的多字段索引

我正在尝试通过pymongo为我的mongodb集合应用索引。我正在使用db[collection_name].ensure_index([("field_name","text"),("unique",1),("dropDups",1)])并且有效。但是现在如何将它应用到多个领域呢?像这样的东西db[collection_name].ensure_index([("field_name1","text"),("field_name2","text"),("field_name3","text"),("unique",1),("dropDups",1)])我知道我们可以使用db.col

python - 从 mongodb 集合中提取所有 _id 的最佳方法

从mongodb集合中提取所有_id的最佳方法是什么?我正在使用pymongo与mongodb一起工作。以下代码:foritemindb.some_collection.find({},{'_id':1}):#dosomething需要一些时间来遍历所有集合。我只需要_id值,它们都应该适合内存。为什么这段代码没有立即完成? 最佳答案 使用distinct:some_collection.distinct('_id')In[5]:c=pymongo.connection.Connection('127.0.0.1')In[6]:c[

mongodb - 复合索引可以用于搜索MongoDB中的单个字段吗?

如果我创建以下复合索引:{'用户名':1,'uid':1}如果我只使用uid搜索,可以使用这个索引吗,比如db.users.find({'uid':'12345'})?因为生成两个单独的单个索引似乎会占用更多内存。 最佳答案 只要您查询的字段是索引字段的左子集,MongoDB就会自动使用索引。也就是说,如果你有一个像{a:1,b:1,c:1}这样的索引,所有3个查询db.coll.find({a:"xxx"}),db.coll.find({a:"xxx",b:"yyy"})和db.coll.find({a:"xxx",b:"yyy"