java - 从 mongodb 集合中的数组中获取值
问题描述
collection:
{
"username" : "gorim99949@x1post.com",
"channels" : [
{
"channelName" : "yyyyy",
"id" : 383,
"url" : "https://xxxxxxxxx",
}
],
}
@Document(collection = "user_masters")
public class UserMasters {
@Field("username")
private String userName;
@DBRef
private List<UserChannels> UserChannels userChannels;
******getter and setter*********
@Document(collection="channels")
public class UserChannels {
private String url;
************getter/setter****************
Repository class
public UserMasters findByUserName(String username);
@Test method
Query: userRepository.findByUserName(userName).getUserChannels().getUrl();
如何从 mongodb 集合中的数组中获取 url 的值。我无法读取集合中数组中的值。在此先感谢您的帮助
解决方案
您将需要一个自定义查询来执行此操作。运行这个查询: db.collection.aggregate({$match: {username: "gorim99949@x1post.com"}}, {$project: {"userChannels": "$channels.url"}}); 它将返回:[{"_id": ObjectId("5a934e000102030405000000"),"userChannels": ["https://xxxxxxxxx"]}]。您可以通过在投影中将 _id 设置为 0 从返回的文档中删除它。
推荐阅读
- python - how to build a model for computer vision without using pre trained models
- c++ - 如何重用原始输入缓冲区内存?
- reactjs - firebase.auth().onAuthStateChanged() 工作异常
- reactjs - 未找到 Axios POST 404
- python - 发送带有数据的 POST 请求时出错
- python - dask 数据框中的 df.groupby(...).apply(...) 函数
- python - 如何使用@property 返回列表
- java - 如何在来自 Firebase 的 viewpager 中显示点击的图像
- sql - 执行 sp_configure 'max server memory' 时出错
- docker - 在 Docker 上运行 Mysql 和 Wordpress,得到消息 Error建立数据库连接