欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MongoDB操作

程序员文章站 2022-04-23 10:45:08
...

①创建数据库: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

 

相关标签: 数据库操作