{
"_id" : ObjectId("576cfd363325ffaa1dbdde15"),
"current_uid" : "5",
"to_uid" : "3",
"content" : "你大爷"
},
{
"_id" : ObjectId("576cfd6e3325ff501e07f4ae"),
"current_uid" : "5",
"to_uid" : "3",
"content" : "郭德纲"
},
{
"_id" : ObjectId("576cfe753325ff501ea76603"),
"current_uid" : "5",
"to_uid" : "4",
"content" : "325235"
}
存的时候如上所示,想要获取用户ID为5的这个跟哪些人聊过天,也就是3和4这2个用户,现在想要获取包括content的信息,也就是跟该用户最新的一条记录,比如3这个用户,我要获取的就是郭德纲这个content而不是上面那条,这个应该怎么查询,初学mongodb,球帮助
이것은 매우 일반적인 그룹화
과 같은 SQL 데이터베이스에는 해당 표현식이 있습니다. 으아악TOP N
문제이며, SQLServer의MongoDB에서
으아악aggregation
를 이용하면 해결 가능합니다.aggregation
은 큰 주제이므로 여기서 모든 내용을 설명할 수는 없습니다. 아래에서 사용되는 다양한 연산자를 이해하려면 설명서만 확인하면 됩니다.몇 가지 설명:
{$sort: {_id: -1}}
을 사용하는 것은 실제로 시간 역순입니다._id
에는 시간이 포함되어 있으며 대부분의 시간은 정렬 시간으로 간주될 수 있습니다.$first
이 첫 번째 요소를 가져옵니다. 처음 n개의 요소를 가져오고 싶다면 어떻게 해야 할까요?$push
+$slice
괜찮습니다위 쿼리를 어떻게 더 빠르게 만들 수 있나요?
db.chat.createIndex({current_uid: 1, _id: 1})