0

MongoDB 2.4.6 での正規表現検索は、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」のすべてのプロジェクトを検索:

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」を含むプロジェクトを返します。私は何が欠けていますか?

ありがとう!

4

1 に答える 1

2

この場合db.Project.find({"name" : /t/})、名前が であるドキュメントを検索するのではなくt、名前に が含まれるすべてのドキュメントを検索しますtここでPECL について読ん で、ここで何をしているかをテストできます。

あなたがしなければならない完全な一致を見つけるために{"name" : 't'}

于 2013-11-07T03:44:35.310 に答える