如何在";名称“;mongodb中文档的字段
我想在mongodb中的文档名称字段上创建一个索引,这样当我进行查找时,我应该按照字母顺序显示所有名称。我如何实现这一点?谁能帮我一下吗 我在mongodb中的文档:如何在";名称“;mongodb中文档的字段,mongodb,mongodb-query,Mongodb,Mongodb Query,我想在mongodb中的文档名称字段上创建一个索引,这样当我进行查找时,我应该按照字母顺序显示所有名称。我如何实现这一点?谁能帮我一下吗 我在mongodb中的文档: db.col.find(); { "_id" : ObjectId("5696256b0c50bf42dcdfeae1"), "name" :
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
,还希望快速执行排序查询。当您按字段名称设置了适当的索引,并且需要返回一个排序结果时,就不需要任何额外的操作,查询将快速执行。就你而言。