欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MongoDB命令使用示例

程序员文章站 2024-01-09 19:51:48
...

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

用图书的示例来说明一下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);