Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
MongoDB find with regex的行为与Java不同_Java_Regex_Mongodb - Fatal编程技术网

MongoDB find with regex的行为与Java不同

MongoDB find with regex的行为与Java不同,java,regex,mongodb,Java,Regex,Mongodb,MongoDB 2.4.6中的正则表达式find与Java模式类的行为方式不同。有人能解释为什么吗 在MongoDB中插入数据: db.Project.insert({ "_id" : "e0b57d9e-744c-471e-ae95-22a389d2988d", "name" : "Project.20131106101344433" }); 查找所有项目: db.Project.find() { "_id" : "e0b57d9e-744c-471e-ae95-22a389d29

MongoDB 2.4.6中的正则表达式find与Java模式类的行为方式不同。有人能解释为什么吗

在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”的所有项目:

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

如您所见,regex db.Project.find返回的项目名称不是“t”,但包含“t”。我错过了什么


谢谢

在本例中,
db.Project.find({“name”:/t/})
您要查找的不是名称为
t
的文档,而是名称包含
t
的每个文档。您可以阅读有关PECL的内容,并测试您正在做什么


要找到精确匹配,您必须执行
{“name”:'t'}

如果您想要精确匹配,为什么要使用regex而不是string literal?我同意,这只是为了显示/t/表达式匹配任何包含“t”的内容,而我希望它的行为有所不同。我明白了,看起来我必须学习不同的语法。谢谢
db.Project.find({"name" : /t/})

{
    "_id" : "e0b57d9e-744c-471e-ae95-22a389d2988d",
    "name" : "Project.20131106101344433"
}
@Test
public void regex() {
    assertTrue(!Pattern.matches("t", "Project.20131106101344433"));
}