cmd下操作mongodb

来源:互联网 发布:用matlab实现omp算法 编辑:程序博客网 时间:2024/05/19 23:01

mongodb作为非关系型数据库(NoSql),它的可以由以下的结构组成,文档,集合,数据库。

其中mongodb的基本单元是文档,这类似于关系型数据库中的行,但从深处将,文档又比行要复杂的多。文档的格式类似于javascript中的json对象类型,如果你有 json的基础,mongodb对你来说,不会显得太陌生。文档是由多个键值有序的组合在一起

集合类似关系型数据库中的表,多个文档组成集合,但是与关系型数据库不同的是,文档中的键值对是可以随意排放的,也就是说,集合中的文档是可以任意去设置的,这取决于你的需要,不过相信应该没有人会将不同的数据放到一个集合里面。

最后呢,多个集合又组成了数据库。

OK,现在是不是很明白了,mongodb并不像想象中的那么难以理解,如果真是那样,开发者还开发mongodb做什么。

下面说一些cmd下对mongodb的操作:

首先要确保服务已经开启。


d:\mongodb\bin>mongo


现在就已经链接成功了,之后就是对mongodb进行的一系列操作。

查看数据库列表

> show dbs

而如果要选择数据库,就如同mysql一样。

> use db

在这里需要说的是,use既可以使用既有的数据库,又可以新建另一个名称的数据库,打个比方,如果我的mongodb实例中没有db的数据库,但是通过 use db,会新建一个名称为db的空白数据库。

在此通过db命令可以查看现在所选择的db

> db

> show collections
这条语句将显示出所选数据库的集合。


下面对news进行操作,下面两个是增加和查找

> db.news.insert({name:'1'})


> db.news.find({name:'1'})


如果这样看,可能会认为我的文档结构就是这样的,事实上不是的,下面我通过取出一条原先db集合中的文档

> db.news.findOne({name:{$ne:'1'}})


这说明了,集合中文档的结构是可以不一致的,但是不一致的结构会将你的网站,你的程序弄得乱糟糟的,最后你会不得不重新规划数据结构,如果因此而说mongodb处理能力弱,就真的是不好了。

上面说了最简单的增加和查找,现在说修改以及删除。

删除操作:

> db.news.remove({_id: ObjectId("53edd90a9c937c963d78d0e1")})
这是将news集合中_id 等于ObjectId("53edd90a9c937c963d78d0e1")的文档删除,这里的_id就如mysql数据库中的主键,但是他们的类型不同

由此可以看到,news集合中_id 等于ObjectId("53edd90a9c937c963d78d0e1")的文档已经被删除。这与mysql中的:‘ delete form 表名 where id = xxx ’  效果是一致的。

mongodb中的修改操作也不难使用,通过update进行实现,他需要至少两个参数,一个是更新的限制条件,另一个是新的文档。

我先增加一条文档

> post={'name':'tom',age:12}

> db.news.insert(post)

> db.news.find({age:12}).limit(1)


现在我插入了一条新的文档,但是现在呢,我需要给这个文档添加一个新的属性

> post.address='中国'

> post.love=['动画片','玩游戏']

> db.news.update({name:'tom',age:12},post)

mongodb的修改操作还可以通过与$set等实现

例如:我将tom的address改为美国

> db.news.update({name:'tom',age:12},{$set:{address:'美国'}})

好了,关于mongodb的增删改查就说这么多了,当然,mongodb还有很多聚合用法,这个在之后的文章中会提到。

注:文中有些截图与实际的数据不符,是因为文章发布后很多图片不显示,之后又补上的图片,但是原理是没有错的。


2 0
原创粉丝点击