Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB管理一个集合中多个字段的索引_Mongodb_Indexing_Nosql - Fatal编程技术网

MongoDB管理一个集合中多个字段的索引

MongoDB管理一个集合中多个字段的索引,mongodb,indexing,nosql,Mongodb,Indexing,Nosql,在MongoDB中,我们可以为获取准确数据的特定字段创建索引。但是如果我们有一个像下面的Book_Features collection这样的场景呢 在这个集合中,每个字段都是为用户提供的,用于排序和列出他们所需的项目。我们如何索引这些字段?我们是否应该索引此集合中的所有字段?这是个好主意吗 书 书刊特色 我认为当用户基于上述字段对数据进行排序时,您希望提高性能。 一般来说,将这么多的字段作为索引不是一个好主意,但是如果您有更多的数据是基于上述搜索词检索的,并且如果这是查询中非常常用的词,您可以

在MongoDB中,我们可以为获取准确数据的特定字段创建索引。但是如果我们有一个像下面的Book_Features collection这样的场景呢

在这个集合中,每个字段都是为用户提供的,用于排序和列出他们所需的项目。我们如何索引这些字段?我们是否应该索引此集合中的所有字段?这是个好主意吗

书刊特色


我认为当用户基于上述字段对数据进行排序时,您希望提高性能。
一般来说,将这么多的字段作为索引不是一个好主意,但是如果您有更多的数据是基于上述搜索词检索的,并且如果这是查询中非常常用的词,您可以继续将它们全部作为索引

现在还不清楚您的意图是什么,但是这里有一些关于复合索引的方法。如果您的查询限制了结果的数量,那么您可以在可接受的时间内不使用索引进行排序。结合分页,这应该足以满足速度要求。然而,我看不出在单独的收藏中保留一本书的特点有什么意义。
_id, book_name, description, price, quantity, author
_id, 
book_id, 
format: [pdf, ebook, hard-copy], 
hard_copy: [soft-bind, hard-bind],
category: [fantasy, horror, adventurous],
languages: [English, Kannada, Hindi],
reviews: {[user: user_id, stars: 5, comment: '', date: '']},
released: [2015, 03, 16],
volumes: [1, 2, 3],
total_pages: 200,
.... and more ....