我的Mongo架构如下所示:
{
"name":"Meeting Name",
"description":"Description",
"uuid":"YPCJaijg",
"participants":[
"JLKGZnfFkGvX9DHgz",
"Rkhs4cu7LzyejcTYa"
],
"log":{
"1423091932927":"Let's do the 10th then",
"1423092118662":"Ok, the 10th it is.",
"1423092165083":"[Selected:20150210]"
}
}
我需要将'log'(timestamp:message)的字段加载到textarea中,但由于它可能会变大,我想我想要排序和限制作为查询的一部分。
接近这个的正确方法是什么?我尝试过像
这样的事情db.meetings.find({uuid:"YPCJaijg"},{'log':1,'_id':0}).sort({"log":-1})
......但那不起作用。我一直在研究聚合框架,但我不知道这是否是正确的方向。我也不相信这个架构首先是合适的。
答案 0 :(得分:0)
首先,您的架构存在问题:
您可以在使用$sort during the update operator推送新值时对元素进行排序。这样您就可以在查找过程中对它们进行排序。如果要限制子文档中的元素数,可以使用$slice projection.。
尽管如此,你可以这样做,如果我是你,我宁愿改变架构以拥有两个集合。你现在拥有的一个(没有日志)而另一个只是记录。