TL 사이에 많은 관계로 많은 MongoDB를, DR : 첫번째 $ 일치하는 단계는 당신에게 여러 문서를 준 상상하지만, $redact
이하는 것처럼 당신이 내 그들구체화합니다. 그러나 문제는 하위 문서에 관계가 있다는 것입니다.이 중 $where
과 같은 검사를하고 싶습니다. 어떻게 그것을 성취 할 수 있습니까? 성능 문제를 일으키고 있기 때문에 $ unwind 할 수 없습니다. (배열 길이가 5 배인 1.5 메가 바이트, 단일 unwind가 1000x ~ 1mb 문서를 유발 함). 이 내 데이터베이스와는 아무 상관이 없지만, 원래 스키마가 위와 같이 정확하게하위 문서
{
userName: "user44",
userID: "44",
posts : [
...
{
title : "post1",
id : "123"
...
},
{
title : "post2",
id : "124"
...
},
...
],
comments: [
...
{
id: "1910",
postId : "123",
commentTitle : "comment1",
comment : "some comment",
user: "user13"
},
{
id: "1911",
postId : "124",
title : "comment2",
commentTitle : "some comment",
user: "user22"
},
{
id: "1912",
postId : "124",
title : "comment2",
commentTitle : "some comment",
user: "user22"
},
...
],
commentUpvotes: [
...
{
id : 12,
commentId : "1910",
upvotedBy: "user91",
upvoteDate: 1000,
},
{
id: 13,
commentId : "1910",
upvotedBy: "user92",
upvoteDate: 2000
},
{
id: 14,
commentId : "1911",
upvotedBy: "user92",
upvoteDate: 2100
},
...
]
}
:
내 스키마는 것 같습니다. 그래서 위의 예제는 사용자 콜렉션입니다. 여기에 사용자의 posts
을 저장합니다. comments
다른 사용자가 게시물을 작성한 사람 commentUpvotes
은 누가 upvoted했는지에 대한 정보를 저장합니다. 디자인의 논리에 대해 생각하지 마십시오 & 내용; 나는 그들을 만들었고 다른 스키마를 제안하지 말아주세요.
질문 :이 게시물과 특정 날짜 이후에 upvoted했다 주석을 찾을 수있는 방법을 찾고, 같은
db.users.find("commentUpvotes.upvoteDate" : {$gte:0})
및 결과 :
{
"_id" : ObjectId("539065d3cd0f2aac5f55778e"),
"posts" : [
{
title : "post1",
id : "123"
...
},
{
title : "post2",
id : "124"
...
},
],
"comments" : [
{
id: 1910,
postId : "123",
title : "comment1",
comment : "some comment",
user: "user13"
},
{
id: 1911,
postId : "124",
title : "comment2",
comment : "some comment",
user: "user22"
},
],
"commentUpVotes" : [
{
id : 12,
commentId : "1910",
upvotedBy: "user91",
upvoteDate: 1000,
},
{
id: 13,
commentId : "1910",
upvotedBy: "user92",
upvoteDate: 2000
},
{
id: 14,
commentId : "1911",
upvotedBy: "user92",
upvoteDate: 2100
}
]
}
참고 : 그것은이다 포스트 질문, 이전 질문은 here입니다. 나는 이것을 약간 확장하고 싶었다.
아마 순진 소리,하지만 왜 당신의 질문은 시작 않는다 "TL; DR을?" 나는 그것이 "너무 길고 읽지 않았다"는 것을 의미한다고 믿습니다. 그런데 왜 질문의 맨 위에 놓았습니까? 우리가 그 질문을 읽지 못하게하려고합니까? – Spundun
나는 약간의 요약을주는 개념을 좋아하고, 계속하기 위해 전적으로 당신에게 달려있다. – anvarik
TL : DR, 당신은 "전체 글을 읽는 데 너무 오래 쓸 수는 있지만 여기에는 간단한 질문 요약 "? – Spundun