도시에 사람이 있습니다. 도시는 "cities"라는 mongodb 콜렉션으로 표현됩니다. 도시의 사람들은 혼자이거나 같은 도시의 다른 사람과 토글하는 사람입니다.연결된 사용자를 그룹화하는 가장 좋은 전략은 무엇입니까
스키마는 다음과 같습니다
{
name: String,
people: [
{
name: String,
status?: String,
walkingWith?: String
}
]
}
"상태"와 "walkingWith"나는 내 전략이 올바른지, 사용하고자하는 사람은 필드. 여기
는 일부 항목은 다음과 같습니다var newyorkPeople = [];
newyorkPeople[0] = {"name": "Jack", "status": "alone", "walkingWith": "none"};
newyorkPeople[1] = {"name": "James", "status": "meeting", "walkingWith": "Maria"};
newyorkPeople[2] = {"name": "Robert", "status": "meeting", "walkingWith": "Nina"};
newyorkPeople[3] = {"name": "Steven", "status": "alone", "walkingWith": "none"};
newyorkPeople[4] = {"name": "Maria", "status": "meeting", "walkingWith": "James"};
newyorkPeople[5] = {"name": "Nina", "status": "meeting", "walkingWith": "Robert"};
내가 다음에 사람들과 새로운 도시를 입력 :
이db.cities.insert({"name": "New York", "people": newyorkPeople});
이제 목표는 클라이언트 (프론트 엔드)에 대한 쉽게 만드는 것입니다 이 도시에 사람들이 무엇인지 묘사하십시오. 그룹화하십시오. 먼저 모든 외로운 사람들을 보여주세요. 그리고 나서 togheter를 걷고있는 "커플들".
그룹화를 백엔드 또는 프론트 엔드 (각도)에서 수행하는 것이 더 좋은지 확실하지 않습니다.
백엔드 (api)에서 express.js를 사용하고 있습니다. api는 모든 도시 문서를 프론트 엔드로 반환 할 수 있습니다. 그리고 프론트 엔드는 사람들을 분류/분류 할 책임이 있습니다. 사람들을 통해
루프 만 혼자있는 사람들을 인쇄 :이 경우
는 생각 전략 임 것이다. 누군가와 함께 걷고있는 사람들은 다른 배열로 가야합니다. 첫 번째 단계는 모든 외로운 사람들을 보여주는 것입니다.이제 커플을 보여줄 필요가 있습니다. 먼저 나는 커플 "James and Maria"와 커플 "Robert and Nina"를 보여줄 필요가있다. 각 커플에 대해 배열을 만들어야합니까? 위의 예제에서는 2 개의 배열을 생성해야합니다.
그러나 이것이 최상의 전략인지 확신 할 수 없습니다. 누군가가 좋은 제안을 할 수 있다면 db-schema를 수정하거나 심지어 백엔드가 그룹화 된 사람들을 전달할 수 있도록해도 괜찮습니다.
감사합니다 . 좋은 해결책이 될 것 같은 소리. 그러나 나는 그것을 충분히 이해하지 못했다. 도시 컬렉션 스키마가 있습니까? 나는 사람들의 배열을 보지 못한다. – oderfla
이제 각자의 스키마에 따라 별도로 문서를 삽입해야합니다.사람들이 지금 배열 할 필요가 없습니다. 스키마 (주석 업데이트)에서 주석에보세요 – nurulnabi
여전히 어떤 설명이 필요 물어 봐야합니다. – nurulnabi