gpt4 book ai didi

java - 我如何更快地获得 MongoDB 中的等效函数? WHERE 子句?

转载 作者:行者123 更新时间:2023-12-01 16:37:06 25 4
gpt4 key购买 nike

我想知道如何在java中像MYSQL一样查询这个函数等效:SELECT nick FROMprofiles WHERE uuid = 'something';

我在我的项目中做了类似的事情,但它看起来太慢并且返回所请求的配置文件的整个文档,除非我使用 document.get("nick") 我得到了我想要的,我很抱歉但我对 MongoDB 真的很陌生,而且我还没有建立关于这方面的东西,我发现它的一切并没有真正帮助我太多..

这是代码:

FindIterable<Document> results = Main.getCollection(Main.getDatabase(plugin.database), plugin.collection).find(Document.parse("{ uid: '00000000-0000-0000-0009-01fbbfda08e8' }, { nick: 1 }")); 
Document document = results.first();
if(document.get("nick") != player.getName()) {
System.out.println("do something");
}

通过FindIterable中的文档var,它返回整个文档,但我只想返回该配置文件的昵称,其uuid是“00000000-0000-0000-0009-01fbbfda08e8”,所以我不需要使用document.get如果可能的话,性能会更好..(抱歉英语不好)

最佳答案

我建议您了解索引和覆盖查询的工作原理(投影),为特定字段创建索引将提高这些常见查询的性能,而投影将帮助您仅获取所需的字段。

有很多例子(java中也有) https://docs.mongodb.com/manual/indexes/#covered-queries

这里有一个正是您所要求的示例: https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/

应用于您的示例的场投影:

.find(eq("uid", "00000000-0000-0000-0009-01fbbfda08e8")).projection(fields(include("nick"), excludeId()));

关于java - 我如何更快地获得 MongoDB 中的等效函数? WHERE 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61932184/

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