Sails.js升级到v1反向区分大小写的查询

问题描述 投票:1回答:2

升级到sails v1后,控制器中的所有请求都区分大小写。

虽然这是预期的,但在这里评论:https://sailsjs.com/documentation/concepts/models-and-orm/models#?case-sensitivity,我想有不区分大小写的行为。

在我的查询中,这是一个问题,我无法找到一种方法,使其再次区分大小写。我在生产中使用MongoDB。

任何形式的帮助或建议将不胜感激。

node.js mongodb sails.js sails-mongo
2个回答
1
投票

对于MongoDB,我们需要执行本机mongo查询以获取不区分大小写:

const collection = Pet.getDatastore().manager.collection(Pet.tableName);
const res = await collection.find({ name: { $regex: /blue/, $options: 'i' } });
const dataWithObjectIds = await res.toArray();
const dataWithIds = JSON.parse(JSON.stringify(rawDataArr).replace(/"_id"/g, '"id"'));

有关本机mongo查询的更多信息,请参阅此处 - https://stackoverflow.com/a/54830620/1828637


0
投票

作为您链接的sails文档指定,您应该在数据库中执行此操作:

默认情况下,大多数数据库都区分大小写,但在极少数情况下,如果不是这样,并且您希望更改该行为,则必须修改数据库才能执行此操作。

由于您使用的是MongoDB,这意味着要创建一个case insensitive index

db.collection.createIndex({ key: 1 }, {
    collation: {
        locale: 'en',
        strength: 1
      }
})
© www.soinside.com 2019 - 2024. All rights reserved.