首先,我对MongoDb和面向文档的数据库(通常是面向文档的数据库)是新手。
在mongodb中的嵌入式文档(无法只选择嵌套文档(例如博客文章中的单个注释)出现问题后,我重新设计了数据库。现在我有两个集合、帖子和评论(为了方便起见,使用博客示例,这不是真正的交易)。
示例- posts收集文档:
阵列{
'_id' : MongoId,
'title' : 'Something',
'body' : 'Something awesome'
}
举例-评论文件:
阵列{
'_id' : MongoId,
'postId' : MongoId,
'userId' : MongoId,
'commentId' : 33,
'comment' : 'Punch the punch line!'
}
如您所见,我有多个注释文档(正如我前面所说的,我希望能够选择单个注释,而不是其中的一个数组)。
我的计划是:我希望使用postId和commentId从集合中选择单个注释(commentId仅在具有相同postId的注释中具有唯一的价值)。噢,commentId需要是一个int,这样我就可以使用这个值来计算下一个和以前的文档,类似于"orderWith“号。
现在我可以得到这样的评论:
URI: mongo.php?post=4de526b67cdfa94f0f000000&comment=4
代码:$comment =$collection->findOne(数组(“postId”=> $theObjId,"commentId“=> (int)$commentId));
我有几个问题。
我做的对吗? commentId?
发布于 2011-06-03 18:28:04
我不知道“大图片集”是否允许你这么做,但我会这样做。
我会在每个帖子中包含一系列的评论。这意味着不需要连接。在您的例子中,注释的规范化并没有带来任何好处。我会用CommentID
代替CreatedAt
作为创建的时间。
这将使您可以使用一个简单的数据模型,以及排序它的能力。
https://stackoverflow.com/questions/6216078
复制相似问题