Nodejs+Extjs+Mongodb开发第二天 Mongodb的简单使用

来源:互联网 发布:福建广电网络微信缴费 编辑:程序博客网 时间:2024/05/01 05:40

一、环境及启动

Mongodb直接下载回来解压就能用。如,我解压到app/mongo目录下。并在appmongo目录下那建data/db目录用来存在mongodb数据库数据的一个文件夹。


root用户启动mongodb,这里如果不使用root用户,第二次再次启动的时候启动不了。具体原因没有找着。

cd app/mongo/bin/mongod --dbpath data/db


进入mongo的shell:

./bin/mongo

关闭:
一种稳妥的停止MongoDB服务的方式就是使用shutdown命令,即{“shutdown” : 1},这是管理命令,要在admin数据库下使用。shell提供了辅助函数,如下:


use admin

db.shutdownServer();

若MongoDB服务器是最为前台进程运行在终端,那么可以直接关闭命令行窗口即可。


二、安全和认证

每个MongoDB实例中的数据库可以有许多用户,如果开启了安全性检查,则只有数据库认证用户才能执行读或者写操作。在数据库中添加用户,如下所示:

use testdb.addUser(“test_user”, “1234”)


addUser()函数中的第三个参数为可选项true或者false,表示该用户是否为只读用户。


注意:addUser不仅能添加用户,还能修改用户口令或者只读状态。


要开启安全性检查,重启服务器,同时加--auth命令行选项。然后通过shell重新连接数据库,操作如下:

use testdb.auth(“test_user”, “1234”)


之后用户就可以在自己的权限范围内进行操作了。
数据库的用户账户以文档的形式存储在system.users集合里面。文档的结构如下:
 {“user” : username, “readOnly” : true, “pwd” : password hash}


其中password hash是根据用户名和密码生成的散列。


用户认证时,服务器将认证和连接绑定来跟踪认证。所以如果驱动程序或是工具使用了连接池或是因故障切换到另一个节点,所有认证用户必须对每个新连接重新认证。有的驱动程序能够将这步透明化,但要是没有,就得手动完成了。


除了认证还有许多选项值得考虑来锁定MongoDB实例。建议将MongoDB服务器布置在防火墙后或者布置在只有应用服务器能访问的网络中。但要是MongoDB必须能被外面访问到的话,建议使用—bindip选项,可以指定mongod绑定到的本地IP地址。

例如,只能从本机应用服务器访问:

mongod –bindip localhost

三、简单的使用

1、使用crm数据库
use crm



2、为数据库中的user集合(类似sql中的表),增加一条数据

db.user.insert({ "username" : "admin","password" : "1234",  "email" : "testuser1@testdomain.com" }) 


3、查询user集合

db.user.find().pretty()


4、为user集合增加多条数据

stuff = [{ "username" : "test1","password" : "1234", "email" : "testuser2@testdomain.com" }, { "username" : "test2","password" : "1234", "email" : "testuser3@testdomain.com" }] db.user.insert(stuff);  


上面操作的结果如下:
benben@benben:~/app/mongo/bin$ ./mongoMongoDB shell version: 2.6.4connecting to: test> use crmswitched to db crm> db.user.insert({ "username" : "admin","password" : "1234",  "email" : "testuser1@testdomain.com" }) WriteResult({ "nInserted" : 1 })> db.user.find().pretty()  {"_id" : ObjectId("53fc73bf784eb7aa025aeb31"),"username" : "admon","password" : "1234","email" : "testuser1@testdomain.com"}> stuff = [{ "username" : "test1","password" : "1234", "email" : "testuser2@testdomain.com" }, { "username" : "test2","password" : "1234", "email" : "testuser3@testdomain.com" }][{"username" : "test1","password" : "1234","email" : "testuser2@testdomain.com"},{"username" : "test2","password" : "1234","email" : "testuser3@testdomain.com"}]> db.user.insert(stuff);  BulkWriteResult({"writeErrors" : [ ],"writeConcernErrors" : [ ],"nInserted" : 2,"nUpserted" : 0,"nMatched" : 0,"nModified" : 0,"nRemoved" : 0,"upserted" : [ ]})> db.user.find().pretty(){"_id" : ObjectId("53fc73bf784eb7aa025aeb31"),"username" : "admon","password" : "1234","email" : "testuser1@testdomain.com"}{"_id" : ObjectId("53fc741f784eb7aa025aeb32"),"username" : "test1","password" : "1234","email" : "testuser2@testdomain.com"}{"_id" : ObjectId("53fc741f784eb7aa025aeb33"),"username" : "test2","password" : "1234","email" : "testuser3@testdomain.com"}> 


1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 云南省特岗登录名忘了怎么办 人行登录名忘了再怎么办 生源地贷款登录名忘了怎么办 举报19楼帖子但是不给删除怎么办 新浪微博手机号被注册了怎么办 忘记新浪微博绑定的邮箱账号怎么办 申诉找回微信账号密码失败怎么办 注册微信号时验证码错误怎么办 老板让写的报道没有当天写完怎么办 洛奇英雄传镶嵌有微章的时装怎么办 上午12点用24小时制怎么办 三分钟看懂捷信个人贷款怎么办 精神不正常的父亲到单位闹怎么办 母亲和父亲一直和我闹怎么办 儿子拿了父亲的钱买手机怎么办 电动车骑的慢的时候车头打漂怎么办 二晓啊相公太爱我了怎么办全文免费 车牌被套牌了又有违章怎么办 高中生只学好主课副科学不好怎么办 母泰迪怀孕23天了不吃饭怎么办 媳妇一再触碰我的底线怎么办 发票商品编码好多选错了分类怎么办 吃了用福尔马林泡的食物怎么办 没大没小说话不尊重人的孩子怎么办 升级安卓8.0后app闪退怎么办 业主装门占用消防通道物业怎么办? 想改名字派出所不给改怎么办 物业不给地热打压影响装修怎么办 pos机pin效码验证错误怎么办 苹果下载东西要发验证码怎么办 接口断在了丝扣里面怎么办 政府下了一张关停取缔单怎么办 微信运动数据不刷新了怎么办 邻居霸占我的土地不还我该怎么办 双层水浴式杀菌锅阀门坏了怎么办 通下水管的钢丝断水管里了怎么办 塑料水管与水阀连接处漏水怎么办 介质流向标识管道温度太高怎么办 雪碧里气体太多瓶子涨得要炸怎么办 餐厅不清洗油烟管道物业该怎么办 用完权健洁净宝后奇痒的厉害怎么办