mongoDB
- mongoose
入门
首先要确保你已经MongoDB的和Node.js的安装。
mongoose官网http://www.nodeclass.com/api/mongoose.html#quick_start
具体用法查文档
接下来使用npm
以下命令从命令行安装Mongoose:
$ npm install mongoose
现在说我们喜欢模糊的小猫,并且想要记录我们在MongoDB中见过的每一只小猫。我们需要做的第一件事是在我们的项目中包含猫鼬,并test
在我们本地运行的MongoDB实例上打开与数据库的连接。
// getting-started.js var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test');
我们有一个到本地主机上运行的测试数据库的挂起连接。如果我们成功连接或发生连接错误,我们现在需要得到通知:
var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function (callback) { // yay! });
一旦我们的连接打开,我们的回调将被调用。为简洁起见,我们假设所有以下代码都在此回调中。
使用Mongoose,所有内容都来自Schema。让我们参考它并定义我们的小猫。
var kittySchema = mongoose.Schema({ name: String })
到现在为止还挺好。我们有一个有一个属性的模式name
,这将是一个String
。下一步是将我们的模式编译成模型。
var Kitten = mongoose.model('Kitten', kittySchema)
模型是我们构建文档的类。在这种情况下,每个文档将成为一个小猫,其特性和行为在我们的模式中声明。让我们创建一个小猫文档,代表我们在外面人行道上遇到的小家伙:
var silence = new Kitten({ name: 'Silence' }) console.log(silence.name) // 'Silence'
小猫可以喵喵叫,那么让我们来看看如何在我们的文档中添加“speak”功能:
// NOTE: methods must be added to the schema before compiling it with mongoose.model() kittySchema.methods.speak = function () { var greeting = this.name ? "Meow name is " + this.name : "I don't have a name" console.log(greeting); } var Kitten = mongoose.model('Kitten', kittySchema)
添加到methods
模式属性的函数会被编译到Model
原型中并显示在每个文档实例上:
var fluffy = new Kitten({ name: 'fluffy' }); fluffy.speak() // "Meow name is fluffy"
我们有说话的小猫!但是我们仍然没有保存任何东西给MongoDB。通过调用其保存方法可以将每个文档保存到数据库中。回调的第一个参数将是一个错误,如果有任何发生。
fluffy.save(function (err, fluffy) { if (err) return console.error(err); fluffy.speak(); });
说时间过去了,我们想要展示我们见过的所有小猫。我们可以通过我们的小猫模型访问所有的小猫文档。
Kitten.find(function (err, kittens) { if (err) return console.error(err); console.log(kittens) })
我们只是将所有的小猫都记录在我们的数据库中。如果我们想按名称过滤我们的小猫,Mongoose支持MongoDB丰富的查询语法。
Kitten.find({ name: /^Fluff/ }, callback)<br /><strong>》》2.</strong><strong>MongoDb服务器连接mongoose的用法</strong>
var mongoose = require("mongoose");
//第一步: mongoose来连接上mongodb的服务器
//创建连接 nodejs-mongodb
//mongodb://localhost:27017/test test:数据库名称
const dbUrl = "mongodb://localhost:27017/test";
//建立连接
mongoose.connect(dbUrl);
//监听是否连接成功 connected
mongoose.connection.on("connected",(socket)=>{
console.log(`${dbUrl} 连接成功了!`)
})
//第二步:操作mongodb/test->collections
//mongodb test goods
//step1:需要在nodejs下创建一个和goods集合对应的一个数据结构 schema
// mongodb goods集合
// nodejs goods同样的一结构 _id,title,des,price
// nodejs goodsschema <- mongoose -> goods 绑定
// 绑定model->CURD->SYSN database
//创建一个schma,用来创建js与mongodb中的collectons的对应schema
var Schema = mongoose.Schema;
//通过schema来创建一个集合在程序中的代理
//userSchema-> users
var userSchema = new Schema({
name:{type:String},
age:{type:Number},
sex:{type:String}
})
//绑定userSchema与数据库中的collection users
var userModel = mongoose.model("users",userSchema);
//第三步,操作userModel->mongoose
//CURD
//1.添加一个新的文档 document
function SaveUser() {
var user = new userModel({
name:"lisi",
age:20,
sex:"male"
});
//save来保存数据`
user.save((error,result)=>{
console.log(result)
})
}
//2.删除用户信息:根据条件来删除
function deleteUser() {
userModel.remove({"name":"lisi"}).exec((error,result)=>{
console.log(result)
})
}
//修改用户信息
function updateUser() {
userModel.update({"name":"zhangsan"},{$set:{"age":30}}).exec((error,result)=>{
console.log(result)
})
}
//查询用户
function getUsers() {
userModel.find({"name":"xxx"}).exec((error,results)=>{
console.log(results)
})
}
//查询分页: skip limit
// skip: 跳过多少行记录
// limit: 限制显示的行数 skip(pageindex*pagesize).limit(pagesize)
function getPager(pageIndex,pageSize) {
userModel.find({}).skip(pageIndex*pageSize).limit(pageSize).exec((error,result)=>{
console.log(result)
})
}
getPager(4,1);
3.MongoDB具体简单用法
详情看http://www.runoob.com/mongodb/mongodb-tutorial.html
<br /><br />