数据库

 首页 > 数据库 > MongoDB > MongoDB数据库添加、修改与删除命令

MongoDB数据库添加、修改与删除命令

分享到:
【字体:
导读:
         摘要:用图书的示例来说明一下mongodb命令的使用。添加插入一个图书文档:db.books.insert({name:’深入学习MongoDB’});然后,可以看一下是否插入成功了:db.books.find();打印的结果类似这样:{“_id”:ObjectId(“4f8e8a8e7a919fd8a1a37e2d”),“...

MongoDB数据库添加、修改与删除命令

用图书的示例来说明一下mongodb命令的使用。

添加

插入一个图书文档:

db.books.insert({name:’深入学习MongoDB’});

然后,可以看一下是否插入成功了:

db.books.find();

打印的结果类似这样:

{ “_id” : ObjectId(“4f8e8a8e7a919fd8a1a37e2d”), “name” :
“深入学习MongoDB” }

好了,现在不想要这条记录了,删除掉:

db.books.remove();

再次使用find(),就不会打印内容了。这里要注意,remove()将删除集合中所有文档。如何删除指定条件的文档,后面再说。

修改

再次创建一个图书文档:

db.books.insert({name:’钱的历史’,items:[]});

这里我增加了一个空数组,后面有用。

现在我要将图书名称(name)改为:深入学习MongoDB。

命令:


db.books.update({_id:ObjectId(“4f8e8a8e7a919fd8a1a37e2d”)},{name:’深入学习MongoDB’},false);


上述命令的缺点是,items属性没有了。如果只想修改图书的名称,而不影响文档的其他属性,可以这样:


db.books.update({_id:ObjectId(“4f8ea9a619bc948142e0dad5″)},{$set:{name:’Deep
in MongoDB’}},false);


现在,我想往空数组里添加一些东西,比如,一个条目:

{_id:ObjectId, type:’chapter’,items:[]}

那么,命令如下:


 db.books.update({_id:ObjectId(’4f8ea9a619bc948142e0dad5′)},{$push:{items:{_id:new
ObjectId(),type:’chapter’,items:[]}}},false);


看一下显示的结果:

{
“_id” : ObjectId(“4f8ea9a619bc948142e0dad5″),
“items” : [
{
"_id" : ObjectId("4f8eaf227a919fd8a1a37e2e"),
"type" : "chapter",
"items" : [ ]
}
],
“name” : “野外维生食物”
}

现在我们想在4f8eaf227a919fd8a1a37e2e的条目的数组中加入内容,怎么做呢?要用到push,它可以向指定的数组追加元素:


db.books.update({_id:ObjectId(’4f8ea9a619bc948142e0dad5′)},{$push:{items:{_id:new
ObjectId(),type:’chapter’,items:[]}}},false);


现在我又发现追加的元素的type值错了,想改成section:


db.books.update({_id:ObjectId(“4f8ea9a619bc948142e0dad5″),’items._id’:ObjectId(“4f8ef10b7a919fd8a1a37e32″)},{$set:{‘items.$.type’:'section’}},false);


我是否能在items的元素的items数组中再追加元素呢?答案是肯定的:


db.books.update({_id:ObjectId(“4f8ea9a619bc948142e0dad5″),’items._id’:ObjectId(“4f8ef10b7a919fd8a1a37e32″)},{$push:{‘items.$.items’:{_id:new
ObjectId(),type:’section’,items:[]}}},false);


追加后的结果类似这样:

{
“_id” : ObjectId(“4f8ea9a619bc948142e0dad5″),
“items” : [
{
"_id" : ObjectId("4f8ef10b7a919fd8a1a37e32"),
"items" : [
{
"_id" : ObjectId("4f8ef4d17a919fd8a1a37e33"),
"type" : "section",
"items" : [ ]
}
],
“type” : “chapter”
}
]
}

删除

如果文档添加了不该有的属性,想删除,比如:


db.books.update({_id:ObjectId(’4f8e8a8e7a919fd8a1a37e2d’)},{$push:{hello:’test1′}},false);


为文档增加了一个没用的属性,he l lo,这是个数组。

删除它:


db.books.update({_id:ObjectId(’4f8e8a8e7a919fd8a1a37e2d’)},{$unset:{hello:1}},false);


MongoDB数据库添加、修改与删除命令
分享到:
MongoDB管理:慎用local、admin数据库
MongoDB副本集默认会创建local、admin数据库,local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。 慎用local数据库 local数据库,从名字可以看出,它只会在本地存储数据,即local数据库里的内容不会同步到副本集里其他节点上去;目前local数据库主要存储副本集的配置信息、...
安装配置MongoDB数据库集群
安装配置MongoDB数据库集群 集群由以下3个服务组成: Shards Server: 每个shard由一个或多个mongod进程组成,用于存储数据 Config Server: 用于存储集群的Metadata信息,包括每个Shard的信息和chunks信息 Route Server: 用于提供路由服务,由Client连接,使整个Cluster看起来像单个DB服务器 另外,Chunks是指MongoDB中...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……