Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Node.js Mongodb排序不区分大小写_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js Mongodb排序不区分大小写

Node.js Mongodb排序不区分大小写,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我在nodejs(express)中的一个项目中非常努力地使用mongodb作为数据库。当我使用sort()获取所有数据时,它会以错误的方式返回数据,所以有没有办法像我预期的那样将其正确格式化,如下所示: 如果我们在DB中有三条记录: --------------------- id | Name | aga --------------------- 1 | atul | 21 --------------------- 2 | Bhavik | 22 --------------

我在nodejs(express)中的一个项目中非常努力地使用mongodb作为数据库。当我使用sort()获取所有数据时,它会以错误的方式返回数据,所以有没有办法像我预期的那样将其正确格式化,如下所示: 如果我们在DB中有三条记录:

---------------------
id  | Name |  aga
---------------------
1   | atul | 21
---------------------
2   | Bhavik | 22
---------------------
3   | Jay | 25
我现在得到的是:

2,3,1系列数据

我期待的是: 1,2,3

这意味着在不添加新列的情况下可以进行排序时忽略大小写。

您需要在此处与
区域设置一起使用:“en”

因此,对于下面的文档

{ "_id" : 1, "name" : "Bhavik" }
{ "_id" : 2, "name" : "Jay" }
{ "_id" : 3, "name" : "atul" }
你会得到

{ "_id" : 3, "name" : "atul" }
{ "_id" : 1, "name" : "Bhavik" }
{ "_id" : 2, "name" : "Jay" }
您需要在此处与
locale一起使用:“en”

因此,对于下面的文档

{ "_id" : 1, "name" : "Bhavik" }
{ "_id" : 2, "name" : "Jay" }
{ "_id" : 3, "name" : "atul" }
你会得到

{ "_id" : 3, "name" : "atul" }
{ "_id" : 1, "name" : "Bhavik" }
{ "_id" : 2, "name" : "Jay" }

您可以直接在方法的
选项
参数中传递
排序规则:{locale:'en'}


您可以直接在方法的
选项
参数中传递
排序规则:{locale:'en'}


使用默认排序规则创建集合。通过这种方式,您可以按任何不区分大小写的属性排序

db.createCollection(“collection\u name”,{collation:{locale:'en\u US',strength:2}})

db.getCollection('collection_name').find({}).sort({'property_name':-1})


更多信息:

使用默认排序规则创建集合。通过这种方式,您可以按任何不区分大小写的属性排序

db.createCollection(“collection\u name”,{collation:{locale:'en\u US',strength:2}})

db.getCollection('collection_name').find({}).sort({'property_name':-1})


更多信息:

您是否尝试了
排序({name:1})
,或者可能会为您所需的输出替换-1?当我们有更多记录时,这将不起作用,因为mongodb排序以大写字母开头,然后是第二个字母,这意味着它不会检查大小写不敏感。您是否尝试
排序({name:1})
或者可能会为您所需的输出替换-1?当我们有更多记录时,这将不起作用,因为mongodb会先用大写字母排序,然后用第二个字母排序,这意味着它不会检查大小写不敏感。实际上,我还必须在同一查询上使用“填充”,那么是否可能?下面是我正在使用的实际代码:(我尝试使用集合,但出现错误)让属性=等待属性。查找({'status':{$in:status})。填充({path:'user',model:'user',select:'first_name last_name mail contact_number')。填充({path:'category',model:'category',select:'category:'name id'})。排序(sortClause).skip(skip).limit(perpage).exec();获取错误,如:UnhandledPromiseRejectionWarning:MongoError:Server192.168.137.152:27017不支持整理我的操作系统:Linux Ubuntu17mongoose和mongodb版本?Mongoose 5.4和mongo的输出--版本如下:db版本v3.2.20 git版本:a7a144f40b70bfe290906eb33ff2714933544af8 OpenSSL版本:OpenSSL 1.0.2g 2016年3月1日分配器:tcmalloc模块:无生成环境:distmod:ubuntu1604 distarch:x86_64 target_arch:x86_64您需要将mongodb版本更新到3.4或更高版本才能使用排序规则实际上我还必须在同一查询上使用populate,那么是否可能?下面是我正在使用的实际代码:(我尝试使用集合,但出现错误)让属性=等待属性。查找({'status':{$in:status})。填充({path:'user',model:'user',select:'first_name last_name mail contact_number')。填充({path:'category',model:'category',select:'category:'name id'})。排序(sortClause).skip(skip).limit(perpage).exec();获取错误,如:UnhandledPromiseRejectionWarning:MongoError:Server192.168.137.152:27017不支持整理我的操作系统:Linux Ubuntu17mongoose和mongodb版本?Mongoose 5.4和mongo的输出--版本如下:db版本v3.2.20 git版本:a7a144f40b70bfe290906eb33ff2714933544af8 OpenSSL版本:OpenSSL 1.0.2g 2016年3月1日分配器:tcmalloc modules:none生成环境:distmod:ubuntu1604 distarch:x86_64 target_arch:x86_64您需要将mongodb版本更新到3.4或更高版本才能使用排序规则这是用于驱动程序的。但不适合猫鼬。:-)这是给司机的。但不适合猫鼬。:-)