NOSQL Mongo入门学习笔记 - 数据的基本插入(二)
成功运行起来mongo之后,进入了命令行模式,mongo默认会选择test数据库
1. 使用db命令打印出来当前选定的数据库:
> db
test
2. 使用show dbs 命令可以打印出数据库列表
> show dbs
local 0.078GB
3. 使用use [dbname] 可以切换数据库
> use local
switched to db local
试着使用db命令打印一下确认是不是在local数据库:
> db
local
使用use 命令的时候 即使是use [anydb] 也可以切换数据库,即便这样,只要没有向库内插入数据,该数据库是不会创建的。可以使用show dbs查看哦
4. 直到现在我仍在是在探寻安装使用问题,没有向数据库中写入任何数据,接下来,慢慢揭开它的面纱。
mongo没有数据表,这个称之为集合,一组数据即使一个集合. 集合不需要显示的创建。官方说使用的是 dynamic schemas ,也不需要插入数据之前定义 文档的结构。
切换一个新的数据库
use mydb
创建两个已j和k命令的文档:
j = {name : "test"}
k = {x:3}
插入到集合中
db.test.insert(j)
db.test.insert(k)
注意到第二次执行明显比第一次要快得多,因为第一次插入的时候会对数据库与集合进行初始化。
插入第一个文档的时候,mongo会同时创建mydb数据库和test集合。
验证一下集合是存在的
> show collections
system.indexes
test
所有的数据库都会包含一个system.indexes集合
3. 循环遍历数据
在mongo shell下可以使用循环来遍历数据
var c = db.test.find() //得到游标
while( c.hasNext() ) printjson( c.next()) //打印数据
这样会把集合内数据打印出来,但是注意的是,mongo默认的只显示20条数据
在获取数据之后可以输入it可以获取以下20条数据
在得到c对象的时候,也可以使用下标来对数据进行读取
printjson( c[2] )
find()不仅仅可以用来获取集合对象,也可以进行类似sql select 的查找
> db.test.find({x:3})
{ "_id" : ObjectId("556ec46ee82c862a1abf7913"), "x" : 3 }
使用limit()限制查询数量
> db.test.find().limit(3) //返回三条集合
> db.test.find({x:3}).limit(3) //返回三条符合条件的集合数据
4. 在mongo脚本中可以使用javascript脚本循环到集合中
> for(var i =1; i<= 10; i++) db.test.insert({x:i})
使用find()查看
> db.test.find()