草庐IT

Indexing

全部标签

arrays - 索引嵌入文档的键到底意味着什么?

我仍然不明白索引嵌入文档的键是如何工作的。假设我有以下博客文章集合:{_id:0,author:'JohnDoe',content:'Howindexinganembeddeddocumentwork?',comments:[{sender:'JaneDoe',content:'Ican\'tmakeitouteither.'},etc...]},etc...假设我现在在评论中的sender属性上设置一个索引:db.blog.createIndex({'comments.sender':1})现在的问题是:这是否意味着无论它们在哪个数组中,都会为sender按升序排序的所有元素创建一个

mongodb - 在 MongoDB 中创建文本索引时出错

db.inventory.createIndex({'category.name':'text','brand.name':'text','name':'text','store.name':'text','collection_1':'text','sku':'text','parent_sku':'text'})使用此命令时出现类似“异常:从索引名称生成的命名空间名称”的错误我使用它是因为我在我的应用程序中创建全文索引..我需要很多字段来搜索索引..那我该怎么办……???? 最佳答案 当自动生成的索引名称太长时,您通常会遇到此错

performance - MongoDB 索引 : object keys vs array of strings

我是MongoDB的新手,一直在研究模式设计和索引。我知道您可以索引一个属性,而不管它的值(ID、数组、子文档等),但我不知道索引字符串数组或嵌套对象的键是否有性能优势。这是我正在考虑的两种情况的示例(在Mongoose中)://schemamongoose.Schema({visibility:{usa:Boolean,europe:Boolean,other:Boolean}});//queryModel.find({"visibility.usa":true});或//schemamongoose.Schema({visibility:[String]//stringscould

javascript - 为什么 cursor.skip() 如果全键被索引有时会慢 3 倍?

我问了Iscursor.skip()onindexedkeysalwaysfaster?现在我正在尝试利用multi-keyindexing(第94页)执行更快的查询。使用此脚本创建了2个数据库:vara=0;while(a++数据库索引如下:>db.fast.getIndexes()[{"v":1,"key":{"_id":1},"name":"_id_","ns":"test.fast"},{"v":1,"key":{"age":1},"name":"age_1","ns":"test.fast"},{"v":1,"key":{"age":1,"name":1,"email":1}

mongodb - MongoDB 是否跟踪每个索引在查询中使用了多少次?

我有一个包含20多个索引的集合,但我不确定实际上经常使用哪些索引。我怀疑有几个非常大的索引很少使用,但却对写入性能和内存使用产生了负面影响。mmap或WiredTiger是否保留每个索引用于返回结果的次数的统计信息?更新:我找到了https://jira.mongodb.org/browse/SERVER-2227这似乎表明这应该存在于版本3.2+中,但找不到任何关于实际查看此计数器的文档。 最佳答案 您可以使用$indexStats(3.2版新增):db.collection.aggregate([{$indexStats:{}}

基于查询语法未使用子文档的 MongoDB 索引

我将Meteor与MongoDB一起使用,并处理这样的文档集合:{a:'a1',b:'b1',c:{d:'d1',e:'e1'}}我最初创建的索引是这样的:collection._ensureIndex({'c.d':1});然后运行这样的查询:collection.find({c:{d:'d1'})。它们运行非常缓慢,当我使用explain()进行调试时,我意识到它们没有使用索引。OTOH,如果我运行这样的查询:collection.find({'c.d':'d1'}),然后Mongo将使用索引。我现在更改了索引以索引整个子文档,即collection._ensureIndex({c

node.js - Mongoose 按分数索引

我正在尝试在mongoose中创建排行榜,但在通过分数递增来索引我的分数模式时遇到了问题。这是我的代码:db.once('open',functioncallback(){console.log('SuccessfullyconnectedtoMongoDB');varscoresSchema=newSchema({score:Number,user:String},{autoIndex:false});scoresSchema.index({user:1,score:-1});StatScore=mongoose.model('Score',scoresSchema);});它的输出

mongodb - 为什么添加索引会降低性能?

我正在评估以下查询的性能。db.products_old.find({regularPrice:{$lte:200}})该集合有超过一百万个文档,总共约0.15GB。无索引这是预料之中的。必须进行全列扫描"executionTimeMillis":1019,"winningPlan":{"stage":"COLLSCAN","filter":{"regularPrice":{"$lte":200}},"direction":"forward"},索引{regularPrice:1}"executionTimeMillis":2842,"winningPlan":{"stage":"FE

java - 如何索引spring data mongodb中的所有字段?

假设我有一些名为candidates的集合。我想在此集合中的所有字段上创建一个text索引。在mongo中,我知道我可以这样做db.candidates.createIndex({"$**":"text"},{name:"TextIndex"})这是我的javapojo或实体。@Document(collection="candidates")publicclassCandidate{@IdprivateStringid;privateStringfirstName;privateStringlastName;//Otherstuff:removedforbrevity}现在如何在ja

node.js - 如何防止 mongo 的数组索引在更新期间发生变化?

我正在尝试更新对象中的数组。但是,每次我发送post调用时,数组中的索引都会发生变化。我已经尝试使用$set并手动更新数组...但是数组上的索引一直在变化。这是模型:constMappedImageSchema=newSchema({imageUrl:{type:String,required:true},name:{type:String,required:true},areas:[{name:{type:String},shape:{type:String},coords:[{type:Number}],}]});module.exports=MappedImage=mongoos