MongoDB操作
①创建数据库:use dataname
有的话转到,没有的话创建
②查看当前数据库:db【这里注意新建的都是空的】
③创建管理员:db.addUser("shuaige", "123456")//给这个数据库创建了一个叫帅哥的账号,密码123456 (但是我觉得可能我理解的不到位,你也可以不做这个操作)
若以授权方式启动数据库,那么我们可以进行管理员验证,之后可以继续操作
④检查数据库列表:show dbs【空的显示不出来,要显示数据库,需要至少插入一个文档
db.items.insert({"name":"yiibai tutorials"})】
在 MongoDB 中默认数据库是:test。 如果您还没有创建过任何数据库,则集合/文档将存储在test数据库中。
⑤创建表单集合:db.createCollection("users")//创建一个集合,也就是表
⑥插入数据:db.users.insert({user: "admin", password: "123456"})//给users里添加一个文档,也就是一条记录账号admin,密码123456
⑦删除数据库:db.dropDatabase()
删除当前所选数据库,想看当前数据库用db。 如果没有选择任何数据库,那么它将删除默认的test数据库
以授权方式启动mongo
先连接mongo:
linux/Mac : mongod -f /mongodb/etc/mongo.conf
windows :mongod --config C:\Users\lg\Desktop\mongodb\mongodb-win32-i386-2.4.5\etc\mongo.conf
授权方式启动:mongo --auth或者mongo --journal
进入后需要验证身份,所以之前需要先创建一个全局管理员。
⑥添加普通用户:
> use tank;
switched to db tank
> db.addUser('tank1','test'); //为tank数据库添加了一个可读写用户tank1
{
"_id" : ObjectId("529e5f8474b4c660718a70f3"),
"user" : "tank1",
"readOnly" : false,
"pwd" : "35dd47abff098f5b4f0b567db8edeac5"
}
> db.addUser('tank2','test',true); //为tank数据库添加了一个只读用户tank2
{
"user" : "tank2",
"readOnly" : true,
"pwd" : "1792916c544d247538ded52e6df7b887",
"_id" : ObjectId("529e67553992b24438d5e315")
}
> exit //退出
mongodb主要有两种使用方法,这里使用了其中的一种:使用 mongoose
Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。
同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。
我们通过Mongoose去创建一个“集合”并对其进行增删改查,就要用到它的三个属性:Schema(数据属性模型)、Model、Entity
Schema —— 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力,仅仅只是数据库模型在程序片段中的一种表现,可以说是数据属性模型(传统意义的表结构),又或着是“集合”的模型骨架。
比如定义一个Schema:
var mongoose = require("mongoose");
var TestSchema = new mongoose.Schema({
name : { type:String },//属性name,类型为String
age : { type:Number, default:0 },//属性age,类型为Number,默认为0
time : { type:Date, default:Date.now },
email: { type:String,default:''}
});
Model —— 由Schema构造生成的模型,除了Schema定义的数据库骨架以外,还具有数据库操作的行为,类似于管理数据库属性、行为的类。
比如定义一个Model:
var db = mongoose.connect("mongodb://127.0.0.1:27017/test");
// 创建Model
var TestModel = db.model("test1", TestSchema);
Entity —— 由Model创建的实体,使用save方法保存数据,Model和Entity都有能影响数据库的操作,但Model比Entity更具操作性。
比如定义一个Entity:
var TestEntity = new TestModel({
name : "Lenka",
age : 36,
email: "lenka@qq.com"
});
console.log(TestEntity.name); // Lenka
console.log(TestEntity.age); // 36