mongoose 須要在Schemas基礎上進行使用javascript
var mongoose = require('mongoose'); java
var Schema = mongoose.Schema; mongodb
var blogSchema = new Schema({ 數據庫
title: String, author: String, 編程
body: String, comments: [{ body: String, date: Date }], 數組
date: { type: Date, default: Date.now }, 編程語言
hidden: Boolean,mongoose
meta: { votes: Number, favs: Number } ui
});spa
Array
在JavaScript
編程語言中並非數組,而是集合,所以裏面能夠存入不一樣的值,如下代碼等價:
var ExampleSchema1 = new Schema({array:[]}); var ExampleSchema2 = new Schema({array:Array}); var ExampleSchema3 = new Schema({array:[Schema.Types.Mixed]}); var ExampleSchema4 = new Schema({array:[{}]});
建立一個模塊
var Blog = mongoose.model('Blog',blogSchema);、
管理數據庫的形式
var db = mongoose.connect('mongodb://localhost/test');
mongoose 經常使用查詢語句
提供了find ,findOne , findById 用於文檔查詢
model.find(query,fields,options,callback) //fields,options 是可選參數
簡單查詢: model.find({'cursor':6},function(err,doc){})//doc 是查詢後的語句
只查詢指定鍵的結果 : model.find({},{'first','last'},function(err,docs){})//doc是隻包含文檔的第一個和最後一個鍵值
model.findOne 和 find 同樣 但只返回單個文檔。
model.findById 和 find 相同,但它只接受文檔的_id 做爲參數,返回單個文檔
model.findById(obj._id,function(err,doc){})
model.count 返回符合條件的文檔數
model.count(conditions,callback)
model.remove 刪除符合條件的文檔
model.remove(contions,callback)
model.where 查詢比較複雜的時候 用where
modle .where('age').gte(25)
.where('tags').in{['movie','music','art']}
.select('name','age','tags'}
.skip(20)
.limit(10)
.asc('age')
.slaveOk()
...
model.update 更新數據庫
var contions = {name : 'borne'},
update = {$inc:{visits:1}},
options = {multi : true}
model.update(conditions,update,options,callback)