1. 下载MongoDB,此处下载的版本是:mongodb-linux-i686-1.8.1.tgz.tar。(我的测试机是ubuntu32bit的)
http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.1.tgz
2. 解压文件到某目录下,然后重命名:
3. 查看安装后的文件情况:
bin下的mongod就是MongoDB的服务端进程,mongo就是其客户端,其它的命令用于MongoDB的其它用途如MongoDB文件导出等。
4. 启动MongoDB.
要先建立好MongoDB 存放数据文件和日志文件的目录,此处建立在/data下:
在MongoDB安装目录下的bin下使用mongod启动MongoDB,
等待启动成功后,可查看是否启动成功了,默认端口号是27017,当然在启动时也可以指定未使用的其它端口。
先通过查看端口号看MongoDB是否启动了。
可以看到,已启动成功,现在使用mongo客户端访问一下该数据库。
到这一步说明已经安装成功了。
5.操作
->use test1 创建库
->db.addUser(“userName”,”Pwd”) 创建用户
->db.auth(“userName”,”Pwd”) 设置用户为允许连接的用户
->db.createCollection(“TableName”) 创建表
->showcollections 查看表是否创建成功
->db.TableName.Save({age:1}) 添加数据
->db.TableName.find() 查看添加的数据是否成功(如果没有查询到任何的结果,说明添加失败)
->添加数据,如果返回的(shell):1 说明有错误
-------------------数据库操作------------------------
use dolphinop # 创建/切换数据库
showdbs # 查看数据库
showcollections # 查看数据库中的表
db.dropDatabase() # 删除数据库
db.table_name.drop() # 删除表
db.table_name.getIndexes(); # 查看索引
db.table_name.ensureIndex({'name':1}) # 建立索引(1或-1)
-------------------插入操作------------------------
插入数据:db.testcollection.insert({'name':'tompig,'age':25}); 说明:如果testcollection不存在则自动创建。
-------------------查询操作------------------------
查询所有数据:db.testcollection.find();
按条件查询:db.testcollection.find({"name":"li"});
查询统计:db.testcollection.find().count();
按条件查询统计:db.testcollection.find({"name":"liu"}).count();
查询固定条数记录:db.testcollection.find().skip(1).limit(2); 从第二条开始查询查询2条记录。
in查询:db.testcollection.find({"age":{$in:["32","33"]}});
排序查询:db.testcollection.find().sort({"age":-1});从大到小排序
db.user.find('this.age>"31"',{name:1}); 等同于SELECTname FROM user WHERE age >30
-------------------删除操作------------------------
删除所有数据:db.testcollection.remove({});
删除一条符合条件的记录:
(1)db.testcollection.remove({"age":"29"});
(2)db.testcollection.remove({"age":{$lt:"30"}});删除age小于30的记录
说明:$gt: > --(Greaterthan 的首字母)
$gte: >= --(Greaterthan or equal 的首字母)
$lt:< --(Lessthan 的首字母)
$lte:<= --(Lessthan or equal 的首字母)
$ne: != --(Notequal的首字母)
-------------------更新操作------------------------
db.testcollection.update({"name":"liu"},{$set:{"age":"35"}});
等同于sql的:updatetestcollection set 'age'='35' where name='liu';
-------------------函数使用------------------------
db.user.distinct("name",{"age":{$gt:"30"}});
等同mysql的selectdistinct("name") from user where age>"30";
15、pymongo查询排序
mongo的排序:升序:db.feedbacks.find().sort({'id':1})
降序:db.feedbacks.find().sort({'id':-1})
pymongo的排序:db.feedbacks.find().sort('id') # 默认是升序
升序:db.feedbacks.find().sort('id',pymongo.ASCENDING)
将序:db.feedbacks.find().sort('id',pymongo.DESCENDING)
多列排序:db.feedbacks.find().sort([('id',pymongo.ASCENDING),('name',pymongo.DESCENDING)])
添加:db.feedbacks.insert({'id':1,'name':'wuxianglong'})
更新:db.feedbacks.update({'id':1},{'$set':{'name':'wuwenyuan'}})
删除:db.feedbacks.remove() # 删除所有数据
db.feedbacks.remove({'id':1})
参考:http://www.linuxidc.com/Linux/2011-05/36309.htm
http://www.linuxidc.com/Linux/2011-12/48865.htm