1. 安装 mongodb:
a)下载 最新版 Mongodb下载
tar xzf mongodb-osx-x86_64-2.2.0.tgz
sudo mv mongodb-osx-x86_64-1.4.0 /usr/local/mongodb
sudo chown -R root /usr/local/mongodb
数据库默认位置在: /data/db, 可以通过 -dbpath重设
b)启动 mongodb
打开一个 terminal:
/usr/local/mongodb/bin/mongod
将启动mongodb, 可以设置 PATH=$PATH:/usr/local/mongodb/bin, 然后直接输入命令: mongod
打开另一个terminal:
/usr/local/mongodb/bin/mongo
将自动连接默认数据库test, 可以设置 PATH=$PATH:/usr/local/mongodb/bin, 然后直接输入命令: mongo
c)简单操作 (obj is a json format object)
show collections 显示所有集合
db.collection_name.drop(); //delete a collection
db.collection_name.find(); // show all record in the collection
db.collection_name.save(obj);// create a record in the collection
db.collection_name.find()// search a record. '$gt' - >, '$gte' - >=, '$lt' - <, '$lte' - <=, '$ne' - !=, '$in' - 'is in array', '$nin' - ' ! in array'
db.collection_name.update() // update whole record, you have to give all fields by updating, all you will lost them, if u not give it in update
db.collection_name.update() by using '$set':obj // update partially, the values not shown here will not be changed
db.collection_name.update() by using '$pull' or '$push'//update partially for array field
db.collection_name.remove(); // remove all records in the collection
db.collection_name.remove(obj) // remove the obj in the collection
d) the collection namr which is by mongoose created is writed in small letter
e.g.
/*
* create model, 'user' plus 's' will be the collection name for MongoDB(database: 'smartlog', colloection: 'users')
*/
var User_model = mongoose.model('user', User_schema);
2 mongoose in Node.js
a) install mongoose model: npm install mongoose
b) include in server.js
var mongoose = require('mongoose');
c) connect to mongodb
mongoose.connect('mongodb://127.0.0.1/smartlog); or
var db = mongoose.createConnection('localhost', 'smartlog');
d) create a dynamic schema:
var User_schema = new mongoose.Schema({userid: String});
e) create a model with predefined schema
var User_model = mongoose.model('user', User_schema);
f) using model to update
User_model.update({userId:userid},{'$set':{online: isOnline}}, function(err, count){});
g) using model to remove
User_model.remove({'userId':{'$in': userIds}},function(error, count){});
h)create a new record:
first: var newUser = new User_model({userId: XXXX});
second: newUser.save(function(error, user){});
i) search all records
User_model.find({},function(err, users){});
j) search a record
User_model.findOne({'userId':data.userId}, function(err, user){});