java, Morphia 如何在使用 Morphia 查找方法时比较字符串

标签 java morphia

我是新手,所以开始吧。
试图从 MongoDb 中获取名为“Bob”的用户。

我有:

UserData ud = MonConMan.instance().getDb().find(UserData.class, "name","bob").get();

如果“bob”的首字母为“Bob”,则无法找到该“bob”。
我知道我可以获得一个 List 并执行 equalsIgnoreCase 但是
我可以使用一些运算符吗?

我有用户登录,必须测试他们是否已注册。用户可以随心所欲地输入他的名字,因此必须找到一种方法来使用 equalsIgnoreCase。是的,这是一个问题,如果有 10,000 个,我无法获取所有名称并执行 equalsIgnoreCase。一开始当然可以将所有用户名保存为小写,但这会破坏名称的视觉外观。

查看 wiki 但看不到任何内容..

http://code.google.com/p/morphia/wiki/Query

最佳答案

像这样使用 java 正则表达式。

String name = "bob";
Pattern pattern = Pattern.compile("^" + bob + "$", Pattern.CASE_INSENSITIVE);//This line will create a pattern to match words starts with "b", ends with "b" and its case insensitive too.

Query<UserData> query = createQuery().field("name").equal(pattern).retrievedFields(true, "id");//Replace `id` with what ever name you use in UserData for '_id'
UserData user = query.get();
if(user!=null){
  //he is already registered
}
else{
//He is  a new guy

}

(我不擅长正则表达式,所以您可能已经在某处阅读过$&^。)

您应该确保您用于验证新用户的用户名在您的系统中应该是唯一的。

关于java, Morphia 如何在使用 Morphia 查找方法时比较字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7533573/

相关文章:

java - 如何为 jsf 2.0 项目添加 nosql ( mongodb ) 支持?

java - Morphia 与 Spring Data Mongo

mongodb - Morphia/MongoDB : ordering search results from advanced queries

java - 找不到适合我类(class)的编解码器

java - 使用 java servlet 过滤器操作 css 文件的最佳方法是什么?

java - JAXB 属性绑定(bind) - 为什么需要它

java - 如何在 mongoDB 中使用吗啡获取累加器结果?

java - 如何在 Spring Batch 中从 3 个表中读取关系数据

java - 如何 sleep /等待 Java Swing 计时器

java - 让 Jackson 使用 GSON 注释