以博文与评论为例,博文有标题内容,对应多个评论,评论有评论人、评论内容等。
(1)插入一条博文:
db.blog.insert(
{'_id':'11','title':'this is blog title1','content':'this is blog content1'}
)
(2)更新一条博文
db.blog.update(
{'_id':'11'},
{$set:{'title':'this is blog title2','content':'this is blog content2'}}
)
(3)更新一条博文,如果不存在就插入
db.blog.update(
{'_id':'12'},
{$set:{'title':'this is blog title4','content':'this is blog content4'}},
{upsert:true}
)
(4)对博文增加一条评论内容
db.blog.update(
{'_id':'11'},
{$push:{'comments':{'user':'user1','content':'评论1'}}}
)
(5)根据条件删除博文的评论
db.blog.update(
{'_id':'11'},
{$pull:{'comments':{'user':'user1'}}}
)
(6)使用$addToSet避免添加重复数据
db.blog.update(
{'_id':'11'},
{$addToSet:{'comments':{'user':'user1','content':'评论1'}}}
)
(7)用$addToSet & $each联合操作批量插入数据
db.blog.update(
{'_id':'11'},
{$addToSet:{'comments':{'$each':[
{'user':'user1','content':'评论1'},
{'user':'user2','content':'评论2'},
{'user':'user3','content':'评论3'},
]}}}
)