gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:53:40 25 4
gpt4 key购买 nike

我是新手,所以开始吧。
试图从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com