见过 mongodb [2]
mongo
这个命令是作为mongodb发布时标配的一个工具.用来和mongodb交互. 它提供了一个完整的javascript环境,支持所有的javascript函数,同时能够很好地支持所有mongodb的接口. 通过下面的2个链接可以详细了解:
连接到数据库
连接到一个mongod
通过mongo
这个命令能够连接到本地的mongodb服务. 默认其实就是在找localhost的端口27017
, 需要连接到不同的地方的时候显式指定 host
和端口好了~
选择一个数据库.
默认连接上去会选中test.通过下面的命令
db
可以查看当前实在哪个数据库上. 1. 通过这个命令可以罗列当前所有的数据库
show dbs
- 这个可以切换不同的数据库
use ‘你想切换的数据库’
创建collection和插入document
看看下面的操作:上面的操作就是指定特定的db之后,创建2个document,然后添加到db中. 最后`show collections`结果会包含`system.indexes`这个collection.它是mongod db系统的. 接下来既然我们把输入已经插入了,就要验证是否真正在里面,我们就要通过`find`方法来查找:db
use mydb
j = { name : “mongo” }
k = { x : 3}
db.testData.insert(j)
db.testData.insert(k)
show collections
这个会返回当前结果集:db.testData.find()
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
所有的collection默认或有 `_id` 这样一个字段的.作为主键使用.
用for循环或者一个javascript的函数来插入数据
为了演示.我们先来导入一些数据通过 [这些方法](http://docs.mongodb.org/manual/tutorial/generate-test-data/)- 就是写一个for循环来插入
- 另外一个就是写一个js函数,然后调用它,其实都是for循环罢了.
2段代码:
for (var i = 1; i <= 25; i++) db.testData.insert( { x : i } )
…
function insertData(dbName, colName, num) {
var col = db.getSiblingDB(dbName).getCollection(colName);
for (i = 0; i < num; i++) {
col.insert({x:i});
}
print(col.count());
}
使用cursor
对于mongodb的查询,它返回一个游标对象.然后通过不断调用游标对象,来获取所有结果,一般一次返回20个,然后通过 it
命令来获取下一段结果集.
遍历游标对象
以javascript的方式说明一个变量:
var c = db.testData.find()
然后通过循环遍历这个对象获取所有数据并显示:
while ( c.hasNext()) printjson( c.next())
写过程序的看上面的代码会很亲切的!
在游标上使用数组的操作符
直接看代码吧:
var c=db.testData.find()
printjson( c[4] )
会显示:
{ "_id" : ObjectId("51a7dc7b2cacf40b79990bea"), "x" : 5 }
这里有更详细的说明 Iterate the Returned Cursor.
查找特定的document
看代码:
db.testData.find( { x : 18 } )
结果如下:
{ “_id” : ObjectId(“51a7dc7b2cacf40b79990bf7″), “x” : 18 }
只获取一个结果
db.testData.findOne()
限制结果集数量
db.testData.find().limit(3)
Written with StackEdit.