- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想检索一个对象,它基于一个对象的 id(或其他单个字段),该对象与我要检索的对象嵌套 2 层。举例说明:
我想查找特定用户评论过的所有博客文章。
Blog
List<Comment>
ignoredField1
ignoredField2
User
id
name
ignoredField3
评论和用户被他们的父对象@Referenced。
看完这篇文章 http://groups.google.com/group/morphia/browse_thread/thread/57090ef1bd2f3e74?pli=1
我知道如何找到带有 ignoreField1/2 具有特定值的评论的博客,但我想进一步导航。
我尝试了以下方法,但是因为比较了所有评论字段,所以没有匹配项
q.field("comments").hasThisElement(new Comment(new User("name")));
最佳答案
我认为您必须分几步完成:
获取用户的对象 ID
ObjectId id = userObj.getId();
获取该用户的所有评论
Query q = ds.createQuery(Comment.class);
q.field("user").equal("name");
q.retrievedFields(true, "_id"); // just get the IDs
获取所有带有这些评论的博客..
不过,还有更好的方法:
嵌入评论而不是引用它们。作为一个独立的对象,它们没有多大意义。然后你可以这样做:
Query q = ds.createQuery(Blog.class);
q.field("comments.user").equal("name");
将 Comments 中的引用添加回 Blog - 例如名为“blog”的 ObjectId 字段。然后你可以这样做:
Query q = ds.createQuery(Comment.class);
q.field("user").equal("name");
q.retrievedFields(true, "blog"); // only get the blog ObjectIds
获取所有博客对象 ID,然后在进一步的步骤中加载它们。
关于java - 基于深度嵌套对象单字段的morphia查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784738/
我尝试通过正则表达式将文本中的单引号更改为双引号。 (单字)示例:我走了。 You gona fly to planet 'Ziqtos' => 我需要在 I'm 中保留单引号,并在 You gona
我正在构建一个 API,其中大部分将包含 JSON 和 HTML 内容。但是一些非常具体的端点只呈现 true 或 false,并且还在 POST 中接受 true 或 false。这是请求或响应的整
我是一名优秀的程序员,十分优秀!