我正在开发一个简单的社交网络,并且需要有关mongorepository查询的帮助。 我有2个文件:
@Document(collection = "post")
public class Post {
...........
@DBRef
@Field("settings")
private Settings settings;
和
@Document(collection = "settings")
public class Settings {
..............
@Field("privacy_settings")
private PrivacySettings privacySettings;
}
PrivacySettings是具有设置ONLY_ME,所有人,朋友的枚举。
这种情况是:一位朋友正在我的页面上查看,他可以看到我的帖子具有正确的隐私设置(例如,他只能看到具有PrivacySettings的帖子:所有人,朋友,但没有ONLY_ME)。 思路,如何解决这个问题?如何创建正确的查询?
答案 0 :(得分:2)
解决方案1
在Mongo
中,您不能在query
个字段中DbRef
除ID外,因为此字段不支持join
。由于read operation
很高,因此建议您在embed
的{{1}}文档的Setting
部分中使用,而不要引用它。正如mongo DB设计所建议的,如果Post
您应该read > write
该文档。在这种情况下,查询将很简单。
解决方案2
您可以在设置文档上首先触发两个数据库查询,以在发布文档上使用embed
的make查询来获取Setting
,并通过设置EVERYONE, FRIENDS
查询来获取所有发布。
解决方案3
您可以轻松地for reference see this.使用in
来查询DbRef对象