저장할 때 위와 같이 ID 5의 사용자가 채팅한 사람, 즉 사용자 3과 4가 누구인지 알고 싶습니다. 이제 이 사용자와 콘텐츠를 포함한 정보를 얻으려고 합니다. 사용자 3과 같은 레코드에서 얻고 싶은 것은 위의 내용이 아닌 Guo Degang의 내용입니다. mongodb 초보자, 공 도움말
PHP中文网2017-05-02 09:22:07
이것은 매우 일반적인 그룹화 TOP N
문제이며, SQLServer의
MongoDB에서 aggregation
를 이용하면 해결 가능합니다. aggregation
은 큰 주제이므로 여기서 모든 내용을 설명할 수는 없습니다. 아래에서 사용되는 다양한 연산자를 이해하려면 설명서만 확인하면 됩니다.
몇 가지 설명:
{$sort: {_id: -1}}
을 사용하는 것은 실제로 시간 역순입니다. _id
에는 시간이 포함되어 있으며 대부분의 시간은 정렬 시간으로 간주될 수 있습니다.
$first
이 첫 번째 요소를 가져옵니다. 처음 n개의 요소를 가져오고 싶다면 어떻게 해야 할까요? $push
+$slice
괜찮습니다
위 쿼리를 어떻게 더 빠르게 만들 수 있나요? db.chat.createIndex({current_uid: 1, _id: 1})