발신자와 수신자가 같은 person.so 문서가 될 수없는 사용자의 채팅 내역을 저장하기위한 데이터베이스를 디자인 중입니다. {sender :1 ,receiver:2}
과 유사하지만 사용자 문서 {sender :1,receiver :1}
을 삽입하면 오류가 발생합니다. 자바 스크립트 console.please guideline.i에서이를 달성하려면 어떻게해야합니까? mongodb에서 데이터베이스를 설계하고 있습니다.두 개의 키 값이 동일한 값을 가져서는 안됩니다.
0
A
답변
0
당신은 msgHistory{sender:1,receiver:1}
모두 전송 및 수신 if(msgHistory.sender == msgHistory.receiver){ // Do nothing } else {//Do something }
가 동일한 경우, 당신이 나에게 sender
을 물어 receiver
이, 그것은 효율적 부울 할당해야하는지 ... 확인 대상이되는, 체크 포인트를 넣을 수 있습니다.
2
이러한 종류의 제약 조건은 각 메시지를 저장하기 전에 응용 프로그램 코드에서 확인해야합니다. 셸에서는 메시지를 데이터베이스에 저장하기 전에 메시지가 유효한지 확인하는 이와 같은 기능을 사용할 수 있습니다. 또한 주문하는 사용자 정의 메시지 오브젝트의 2 요소의리스트로서 [sender, receiver]
관계를 코딩 고려해
function sendMessage(message) {
if(message.sender == message.receiver) {
throw "Cannot send message to self";
} else {
db.messages.save(message);
}
}
발신자이고 상기 수신기는이다. 이렇게하면 주어진 사용자와 관련된 모든 메시지를 쉽게 검색 할 수 있습니다.
예를 들어 메시지 개체의 형식이 { senderReceiver: [1, 2] }
인 경우 인 경우 db.messages.find({senderReceiver: 2})
이라는 쿼리를 사용하여 사용자 2와 관련된 모든 메시지를 찾을 수 있습니다.
관련 문제
- 1. 동일한 값을 가진 두 개의 배열 키
- 2. mysql에서 두 개의 동일한 값을 뺀 값이 0이 아님
- 3. concate 두 개의 json 객체가 동일한 키
- 4. 동일한 테이블의 두 개의 복합 키
- 5. 동일한 파일에서 두 개의 다른 키에 대한 값을 출력하는 감속기
- 6. 두 개의 옵션 키
- 7. 두 개의 다른 테이블에 동일한 값을 추가하십시오.
- 8. 두 개의 동일한 값을 액티비티로 전달
- 9. 두 개의 키 값이 같은 경우, 두 개의 별도 해시 키가 같은 경우 교차점을 만듭니다. Ruby
- 10. JSON을 두 개의 배열로 분할하면 정의되지 않은 키 - 값이 주어진다
- 11. 두 개의 행이 존재하고 값이
- 12. 두 개의 동일한 unordered_maps의 순서가 동일합니까?
- 13. 두 개의 스레드가 동일한 해시 맵에 동일한 키 값을 넣으려고 할 때 어떤 일이 발생합니까?
- 14. 두 개의 테이블이 동일한 키 집합을 가지고 있는지 확인
- 15. 두 개의 기본 키
- 16. 리눅스 : 동일한 파일에 동일한 값을 갖는 두 개의 라인 가입
- 17. 두 개의 JavaScript 배열이 동일한 값을 가지고 있는지 비교하려면 어떻게해야합니까?
- 18. 키 값이 동일한 다차원 배열로 배열을 결합하십시오.
- 19. 두 개의 동일한 키 이름 (배열)이있는 해시 병합
- 20. 왜 두 개의 다른 session_id() 값이 표시됩니까?
- 21. 어떻게 두 HashMaps을이 동일한 키 값을 서로 다른 값
- 22. IDENTITY 열의 동일한 값이 두 개의 삽입기에 반환되는 이유는 무엇입니까?
- 23. 동일한 키와 다른 값을 가진 두 개의 JsonObject를 병합합니다.
- 24. NHibernate에 두 개의 자연 키
- 25. 두 개의 값을 비교하는 것
- 26. $ _POST에 여러 개의 키 값이 있습니다.
- 27. 두 개의 동일한 NSDictionary를 NSDictionary에 병합하는 방법
- 28. 여러 동일한 키 값을 XSLT에
- 29. mysql 두 개의 동일한 테이블 삽입, 기본 키 없음
- 30. 합법적인가? 동일한 기본 키를 참조하는 두 개의 외래 키