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: "[email protected]"

});

console.log(TestEntity.name); // Lenka

console.log(TestEntity.age); // 36

猜你喜欢

转载自570109268.iteye.com/blog/2383844