gpt4 book ai didi

java - MongoDB 使用正则表达式查找的行为与 Java 不同

转载 作者:行者123 更新时间:2023-12-02 06:34:07 24 4
gpt4 key购买 nike

使用 MongoDB 2.4.6 进行正则表达式查找的行为与 Java Pattern 类的行为不同。谁能解释一下为什么吗?

在 MongoDB 中插入数据:

db.Project.insert({ "_id" : "e0b57d9e-744c-471e-ae95-22a389d2988d", "name" : "Project.20131106101344433" });

查找所有项目:

db.Project.find()

{
"_id" : "e0b57d9e-744c-471e-ae95-22a389d2988d",
"name" : "Project.20131106101344433"
}

查找名称为“t”的所有项目:

db.Project.find({"name" : /t/})

{
"_id" : "e0b57d9e-744c-471e-ae95-22a389d2988d",
"name" : "Project.20131106101344433"
}

检查唯一项目名称与正则表达式“t”不匹配:

@Test
public void regex() {
assertTrue(!Pattern.matches("t", "Project.20131106101344433"));
}

如您所见,正则表达式 db.Project.find 返回一个名称不是“t”但包含“t”的项目。我错过了什么?

谢谢!

最佳答案

在这种情况下db.Project.find({"name":/t/})您不是在寻找名称为t的文档,而是查找名称中包含 t 的每个文档。您可以阅读有关 PECL here并测试你在做什么here .

要找到完全匹配,您必须执行{"name": 't'}

关于java - MongoDB 使用正则表达式查找的行为与 Java 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19827554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com