Node.js 数组内mongodb和nodejs中不区分大小写的搜索

Node.js 数组内mongodb和nodejs中不区分大小写的搜索,node.js,mongodb,case-insensitive,Node.js,Mongodb,Case Insensitive,我想执行标记搜索,它必须对标记关键字不区分大小写。我需要一个单一的关键字搜索这个,以及如何做多个关键字了。但问题是,当我用以下查询进行搜索时,我什么也得不到。我是NodeJs和MongoDb的新手,因此如果查询中有任何错误,请纠正我 标签可以是“tag1”或“tag1”或“tag1” 对于我使用的单标记关键字搜索(我没有得到任何结果): 对于多标记关键字搜索(也需要使其不区分大小写:() 数据库中的记录集: { "results": { "products": [

我想执行标记搜索,它必须对标记关键字不区分大小写。我需要一个单一的关键字搜索这个,以及如何做多个关键字了。但问题是,当我用以下查询进行搜索时,我什么也得不到。我是NodeJs和MongoDb的新手,因此如果查询中有任何错误,请纠正我

标签可以是“tag1”或“tag1”或“tag1”

对于我使用的单标记关键字搜索(我没有得到任何结果):

对于多标记关键字搜索(也需要使其不区分大小写:()

数据库中的记录集:

{
    "results": {
        "products": [
            {
                "_id": "5858cc242dadb72409000029",
                "Permalink": "some-permalink-1",
                "Tags": [
                        {"TagText":"Tag1"},
                        {"TagText":"Tag2"},
                        {"TagText":"Tag3"},
                        {"TagText":"Tag4"},
                        {"TagText":"Tag5"}
                    ],
                "Viewcount": 3791
            },
            {
                "_id": "58523cc212dadb72409000029",
                "Permalink": "some-permalink-2",
                "Tags": [
                        {"TagText":"Tag8"},
                        {"TagText":"Tag2"},
                        {"TagText":"Tag1"},
                        {"TagText":"Tag7"},
                        {"TagText":"Tag2"}
                    ],
                "Viewcount": 1003
            },
            {
                "_id": "5858cc242dadb11839084523",
                "Permalink": "some-permalink-3",
                "Tags": [
                        {"TagText":"Tag11"},
                        {"TagText":"Tag3"},
                        {"TagText":"Tag1"},
                        {"TagText":"Tag6"},
                        {"TagText":"Tag18"}
                    ],
                "Viewcount": 2608
            },
            {
                "_id": "5850cc242dadb11009000029",
                "Permalink": "some-permalink-4",
                "Tags": [
                        {"TagText":"Tag14"},
                        {"TagText":"Tag12"},
                        {"TagText":"Tag4"},
                        {"TagText":"Tag5"},
                        {"TagText":"Tag7"}
                    ],
                "Viewcount": 6202
            },

        ],
        "count": 4
    }
}

为要搜索的字段创建文本索引。(默认不区分大小写)

欲知更多选择

将$text运算符与$search结合使用以搜索内容

欲知更多选择

单项搜索

db.somecollection.find({$text: { $search: "Tag3"}});
db.somecollection.find({'Tags.TagText': {$regex: /^Tag3$/i}}).pretty();
使用多个搜索词进行搜索

db.somecollection.find({$text: { $search: "Tag3 Tag5 Tag16"}});
db.somecollection.find({'Tags.TagText': {$in: [/^Tag11$/i, /^Tag6$/i]}}).pretty();
更新:

看起来您正在寻找不区分大小写的相等,这可以通过正则表达式轻松实现。您将不需要文本搜索。请删除文本搜索索引

单项搜索

db.somecollection.find({$text: { $search: "Tag3"}});
db.somecollection.find({'Tags.TagText': {$regex: /^Tag3$/i}}).pretty();
使用多个搜索词进行搜索

db.somecollection.find({$text: { $search: "Tag3 Tag5 Tag16"}});
db.somecollection.find({'Tags.TagText': {$in: [/^Tag11$/i, /^Tag6$/i]}}).pretty();

为要搜索的字段创建文本索引。(默认不区分大小写)

欲知更多选择

将$text运算符与$search结合使用以搜索内容

欲知更多选择

单项搜索

db.somecollection.find({$text: { $search: "Tag3"}});
db.somecollection.find({'Tags.TagText': {$regex: /^Tag3$/i}}).pretty();
使用多个搜索词进行搜索

db.somecollection.find({$text: { $search: "Tag3 Tag5 Tag16"}});
db.somecollection.find({'Tags.TagText': {$in: [/^Tag11$/i, /^Tag6$/i]}}).pretty();
更新:

看起来您正在寻找不区分大小写的相等,这可以通过正则表达式轻松实现。您将不需要文本搜索。请删除文本搜索索引

单项搜索

db.somecollection.find({$text: { $search: "Tag3"}});
db.somecollection.find({'Tags.TagText': {$regex: /^Tag3$/i}}).pretty();
使用多个搜索词进行搜索

db.somecollection.find({$text: { $search: "Tag3 Tag5 Tag16"}});
db.somecollection.find({'Tags.TagText': {$in: [/^Tag11$/i, /^Tag6$/i]}}).pretty();

嗨,Sagar,你能告诉我一件事吗,这是对标签的精确搜索吗?我的意思是搜索标签“适合你这个年龄的正确护肤品是什么”与标签“护肤品”的产品相匹配。这不应该发生。只有当我用标签“护肤品”搜索时,这个产品才会出现……你能帮忙吗?提前谢谢你将更新添加到答案中。对不起,f或者不清楚你的要求。看一看,让我知道。嗨,萨加尔,你能告诉我一件事吗,这是对标签的精确搜索吗?我的意思是,搜索标签“适合你年龄的正确护肤品是什么”与标签“护肤品”的产品相匹配。这不应该发生。只有当我用标签“护肤品”搜索时,这个产品才会出现e、 …您能帮忙吗?提前感谢您将更新添加到答案中。很抱歉,您没有清楚地理解您的要求。请查看并让我知道。