2016-08-07 5 views
1

値に " - "を含むすべてのウィンドウ特殊文字があり、Mongoに直接挿入することはできないものとします。Mongoからデータを保存/取得する際に特殊文字をエスケープする方法

  1. ここでmongo dbの特殊文字制限がありますか?
  2. 保存または取得中にエスケープする方法はありますか?

例では、角括弧([...])で値を渡す必要がありますか?特殊文字を使用してレコードを挿入および取得する方法。

ありがとうございました。

+0

何クライアント/ドライバ、あなたのデータを挿入するために使用していますか? – helmy

+0

JongoドライバAPI – Kathire

答えて

0

この:

MongoCollection.findOne(query, parameter) 

は、問題を解決しました。

クエリとパラメータexplicite:

MongoCollection.findOne("{ empName: # }", empName) 
0

MongoDBの値には、任意のUTF-8文字列を使用できます。エスケープすることはクライアントプログラムの責任です。使用しているクライアントプログラム/言語ドライバによっては、その言語に必要なエスケープ文字を使用する必要があります。

あなたはJongoを使用していると述べているので、Javaとmongo-javaドライバを使用していることになります。 Javaでは、使用しようとしているキャラクタにユニコードのエスケープシーケンスを使用できます。たとえば、\ u2014はemダッシュ文字です。例えば

DB db = new MongoClient().getDB("test"); 
Jongo jongo = new Jongo(db); 
MongoCollection collection = jongo.getCollection("mycollection"); 
collection.insert("{fieldWithDash: 'x-y', fieldWithEmDash: 'x\u2014y'}"); 
Test test = collection.findOne("{fieldWithEmDash: 'x\u2014y'}").as(Test.class); 
System.out.println(test); 
+0

Jongo APIを使用しています – Kathire

+0

MongoCollection.findOne(クエリ、パラメータ)が問題を解決しました。クエリとパラメータは "{empName:#}"、empName – Kathire

関連する問題