Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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_Mongodb Query - Fatal编程技术网

如何在";名称“;mongodb中文档的字段

如何在";名称“;mongodb中文档的字段,mongodb,mongodb-query,Mongodb,Mongodb Query,我想在mongodb中的文档名称字段上创建一个索引,这样当我进行查找时,我应该按照字母顺序显示所有名称。我如何实现这一点?谁能帮我一下吗 我在mongodb中的文档: db.col.find(); { "_id" : ObjectId("5696256b0c50bf42dcdfeae1"), "name" :

我想在mongodb中的文档名称字段上创建一个索引,这样当我进行查找时,我应该按照字母顺序显示所有名称。我如何实现这一点?谁能帮我一下吗

我在mongodb中的文档:

db.col.find();                                                                                              
{ "_id" : ObjectId("5696256b0c50bf42dcdfeae1"), "name" : "Daniel", "age" : 24 }                                
{ "_id" : ObjectId("569625850c50bf42dcdfeae2"), "name" : "Asha", "age" : 21 }                              
{ "_id" : ObjectId("569625a40c50bf42dcdfeae3"), "name" : "Hampi", "age" : 34 }                              
{ "_id" : ObjectId("5696260f0c50bf42dcdfeae5"), "name" : "Bhavana", "age" : 14 }  

实际上,按字母顺序显示结果并不需要索引。你需要的是方法

db.collection.find().sort({'name':1})
返回

{“_id”:ObjectId(“569625850c50bf42dcdfeae2”),“name”:“Asha”,“age”:21}
{“_id”:ObjectId(“5696260f0c50bf42dcdfeae5”),“name”:“Bhavana”,“age”:14}
{u id:ObjectId(“5696256b0c50bf42dcdfeae1”),“姓名”:“丹尼尔”,“年龄”:24}
{“_id”:ObjectId(“569625a40c50bf42dcdfeae3”),“name”:“Hampi”,“age”:34}
在文档中的字段上创建索引不会自动对该字段上的结果进行排序。您仍然需要使用
.sort()
方法。看


如果要按升序返回文档中所有名称的数组,则需要使用该方法

管道中的第一个阶段是按“名称”升序对文档进行排序的阶段。最后一个阶段是对文档进行分组并使用累加器运算符返回“名称”数组的阶段

db.collection.aggregate([
{“$sort”:{“name”:1}},
{“$group”:{“_id”:null,“名称”:{“$push”:“$name”}}
])
这将产生:

{u id:null,“name”:[“Asha”、“Bhavana”、“Daniel”、“Hampi”]}

阅读文档,尤其是我认为添加索引的原因不仅仅是因为用户希望按原样使用
sort
,还希望快速执行排序查询。当您按字段
名称
设置了适当的索引,并且需要返回一个排序结果时,就不需要任何额外的操作,查询将快速执行。就你而言。