如何从Mongo中保存/检索数据时转义特殊字符

时间:2016-08-07 15:59:09

标签: mongodb

假设一个值包含所有窗口特殊字符,包括" - "它不能直接插入Mongo。

  1. 我在哪里可以找到mongo db特殊字符限制?
  2. 如何在保存或检索时逃脱?
  3. 例如,我们是否需要在括号内传递值([...])?如何插入和检索具有特殊字符的记录。

    感谢。

2 个答案:

答案 0 :(得分:0)

MongoDB中的值可以是任何UTF-8字符串。逃避将是您的客户端计划的责任。根据您使用的客户端程序/语言驱动程序,您需要使用该语言所需的转义字符。

由于您提到您正在使用Jongo,这意味着您正在使用Java和mongo-java-driver。在Java中,您只需对要尝试使用的字符使用unicode转义序列。例如,\ u2014是em-dash字符。

例如:

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);

答案 1 :(得分:0)

此:

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

解决了这个问题。

查询和参数明确:

.htaccess