MongoDB,使用字段作为子数组的值
我有一个这样的结构MongoDB,使用字段作为子数组的值,mongodb,meteor,Mongodb,Meteor,我有一个这样的结构 {_id : "id Assigned by Mongo" , mainPost: "some text", comments: [], commentsCount : 0} 我添加了一个新的评论 update({_id: documentID}, { $addToSet: { 'comments': {cText:text , ....}}}); 但是comments文档没有ID。mongo是否为该子文档分配了ID 在增加子文档之前,我还可以使用Commen
{_id : "id Assigned by Mongo" ,
mainPost: "some text",
comments: [],
commentsCount : 0}
我添加了一个新的评论
update({_id: documentID}, { $addToSet: { 'comments': {cText:text , ....}}});
但是comments文档没有ID。mongo是否为该子文档分配了ID
在增加子文档之前,我还可以使用CommentScont作为子文档的ID,但我不知道如何在MongoDB中获得它的值
update({_id: documentID}, { $addToSet: {
'comments': {commentID: ??? how to get commentsCount value??? , cText:text }}})
不能让数据库自动为子文档分配id,但可以在应用程序中手动分配。本机MongoDB驱动程序公开函数
newObjectId()
,该函数使用数据库使用的相同算法生成ObjectId。您只需将其分配给插入的子文档的一个字段
$addToSet: { 'comments': { _id: new ObjectId(), cText:text, ....}}
顺便说一下:要更新文档并同时从数据库请求它,请在Meteor上使用。它是Meteor.Collection.ObjectID(),非常感谢