最近在學(xué)習(xí)node,所以聽(tīng)說(shuō)node和mongodb更配哦。。所以我就來(lái)學(xué)習(xí)mongodb了
which mongod
2. 啟動(dòng)mongodb指定path 和log日志
mongod --dbpath /data2/db --port=27017 --fork /data2/db/log/mongod.log
mongod --shutdown
二、mongodb的操作 1. 連接服務(wù)器mongod 115.29.137.34:27017
2. 使用數(shù)據(jù)庫(kù)(不存在的數(shù)據(jù)庫(kù)也可以使用,插入數(shù)據(jù)之后會(huì)自動(dòng)保存)
use mydb
db.auth("username","password")
4. 展示數(shù)據(jù)庫(kù)列表show dbs
5. 插入數(shù)據(jù)(類(lèi)似于mysql的表)
db.users.insert({"name":"xiaomo"})
db.users.insert({"name":"xiaoming","age":25})
db.users.insert({"name":"xiaoming","age":24,"sex":"女"})
(前提是use了一個(gè)數(shù)據(jù)庫(kù))
有一個(gè)System.indexes 是索引
show collections
db.users.find()
8. 帶條件查詢(xún)(參數(shù)是一個(gè)對(duì)象)
db.users.find({"name":"xiaomo"})
(有三個(gè)參數(shù),1:查詢(xún)條件,2:更新的內(nèi)容 3:更新的配置)
db.users.update({"name":"xiaomo",{$set:{"name:"xm}}) 修改滿(mǎn)足條件的第一條數(shù)據(jù)
db.users.update({"name":"xiaomo",{$set:{"name:"xm}},{multi:true}) 修改所有滿(mǎn)足條件的數(shù)據(jù)
(只有一個(gè)參數(shù),必須要傳id,后面是要修改的數(shù)據(jù))
db.users.save({"id":"objectId(574710a97a3afd63cde56a49)","age":30})
(1:條件 2 是否刪除所有符合條件的)
db.users.remove({"name":"xiaomoing"},true)
db.users.drop()
三、使用mongoose操作數(shù)據(jù)庫(kù) 1. 模塊的介紹連接mongdodb的驅(qū)動(dòng)
2. 配置和鏈接npm install --save mongoose
var mongoose = require("mongoose"); var uri = "mongodb://xiaomo:[email protected]:27017/admin"; mongoose.connect(uri);3. Model 和Shema
// model.js var Schema = mongoose.Schema, ObjectId = Schema.ObjectId; var BlogPost = new Schema({ author : ObjectId, title : String, body : String, date : Date }); //Model mongoose.model("blog",Schema); var Comment = new Schema({ name: { type: String, default: "hahaha" }, age: { type: Number, min: 18, index: true }, bio: { type: String, match: /[a-z]/ }, date: { type: Date, default: Date.now } }); // a setter Comment.path("name").set(function (v) { return capitalize(v); }); // middleware Comment.pre("save", function (next) { notify(this.get("email")); next(); });4. 創(chuàng)建文檔
//insert.js var mongoose = require("mongoose"); require("./model.js"); //執(zhí)行 var Blog = mongoose.model("blog"); var blog = new Blog({ name:"xiaomo", age:25, bio:"don"t know", date:new Date }); book.save(function(err){ console.log("save status:"+err); });5. 刪除文檔
var mongoose = require("mongoose"); require("./model.js"); var Blog = mongoose.model("blog"); Blog.findOne({"name":"xiaomo"},function(err,doc){ if(err){ console.log(err) return; } if(doc){ doc.reomove(); } })6. 簡(jiǎn)單查詢(xún)
var mongoose = require("mongoose"); require("./model.js"); var Blog = mongoose.model("blog"); Blog.find({},function(err,doc){ if(err){ console.log(err) return; } console.log("result",doc) })
第一個(gè)滿(mǎn)足條件的結(jié)果
var mongoose = require("mongoose"); require("./model.js"); var Blog = mongoose.model("blog"); Blog.findOne({"name":"xiaomo"},function(err,doc){ if(err){ console.log(err) return; } console.log("result",doc) })7. 條件語(yǔ)句
// condation.js var mongoose = require("mongoose"); require("./model.js"); var Blog = mongoose.model("blog"); //名字是xiaomo或者xiaoming 可以用$or和$and var condation = { $or $and:[ {"name":"xiaomo"}, {"name":"xiaoming"} ] } Blog.find(condation,function(err,doc){ if(err){ console.log(err) return; } console.log("result",doc) })三、在項(xiàng)目中使用mongoose 1. 生成項(xiàng)目
koa koatest -e koatest
2. 安裝依賴(lài)cd koatest && npm install
3. 安裝mongoosenpm install --save mongoose
4. 創(chuàng)建模型// models/users.server.model.js var mongoose = require("mongoose"); var UserSchema = new mongoose.Schema({ uid:Number, username:String, createTime:Date, lastLogin:Date }) module.exports = mongoose.model("User",UserSchema);5. 創(chuàng)建配置文件
// config/config.js module.exports={ mongodb:"mongodb://xiaomo:[email protected]:27017/admin" } //config/mongoose.js var mongoose = require("mongoose"); var config = require("./config.js"); module.exports=function(){ var db = mongoose.connect(config.mongodb); require("./../models/users.server.model.js"); return db; }6. 操作mongdodb 代碼
//routers/users.js var router = require("koa-router")(); var mongoose = require("mongoose"); var User = mongoose.model("User"); router.get("/", function *(next) { //add var user = new User({ uid: }) this.body = yield User.find({}); }); module.exports = router;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79698.html
摘要:概述使用這個(gè)教程在和使用軟件包安裝社區(qū)版雖然發(fā)行版包含自己的軟件包官方的社區(qū)版包通常是最新的平臺(tái)支持本安裝教程僅支持位操作系統(tǒng)詳細(xì)信息請(qǐng)參閱平臺(tái)支持軟件包在自己的存儲(chǔ)庫(kù)中提供官方支持軟件包此存儲(chǔ)庫(kù)包含以下軟件包軟件名簡(jiǎn)介一個(gè)元軟件包將自動(dòng) 概述 使用這個(gè)教程在 SUSE Linux 11 和 12 使用 .rpm 軟件包安裝 MongoDB 社區(qū)版. 雖然 SUSE 發(fā)行版包含自己的 ...
摘要:概述使用本教程在系統(tǒng)上安裝社區(qū)版平臺(tái)支持自版本開(kāi)始不支持請(qǐng)使用更新版本的來(lái)使用更新版本的重要如果你正在運(yùn)行任何版本的或者請(qǐng)安裝修復(fù)程序以解決上的內(nèi)存映射文件的問(wèn)題要求社區(qū)版需要或者更高版本安裝程序包含所有其它軟件依賴(lài)項(xiàng)將自動(dòng)更新使用文件安裝 概述 使用本教程在 Windows 系統(tǒng)上安裝 MongoDB 社區(qū)版. 平臺(tái)支持: 自2.2版本開(kāi)始, MongoDB 不支持 Windo...
摘要:概述使用這個(gè)教程在或者使用軟件包安裝社區(qū)版雖然包含自己的軟件包但官方的社區(qū)版包通常是最新的本安裝教程僅支持位操作系統(tǒng)詳細(xì)信息請(qǐng)參閱平臺(tái)支持這些軟件包可以與其它版本一起工作。 概述 使用這個(gè)教程在 Debian 7 Wheezy 或者 Debian 8 Jessie 使用 .deb 軟件包安裝 MongoDB 社區(qū)版. 雖然 Debian 包含自己的 MongoDB 軟件包, 但官方的 ...
摘要:推薦閱讀資源庫(kù)工具應(yīng)用程序精選列表中文版有哪些鮮為人知,但是很有意思的網(wǎng)站一份攻城獅筆記每天搜集上優(yōu)秀的項(xiàng)目一些有趣的民間故事超好用的谷歌瀏覽器油猴插件合集目錄資源文檔文章圖書(shū)會(huì)談教程更多庫(kù)工具管理數(shù)據(jù)部署桌面發(fā)展監(jiān)控應(yīng)用資源文檔介紹文檔教 推薦閱讀 MongoDB 資源、庫(kù)、工具、應(yīng)用程序精選列表中文版 有哪些鮮為人知,但是很有意思的網(wǎng)站? 一份攻城獅筆記 每天搜集 Github ...
摘要:概述使用這個(gè)教程在使用軟件包安裝社區(qū)版包含自己的軟件包但官方的社區(qū)版包通常是最新的平臺(tái)支持本安裝教程僅提供位長(zhǎng)期支持版本例如,等等這些軟件包可能將和其它版本一起工作然后它們并不支持軟件包在自己的存儲(chǔ)庫(kù)中提供官方支持軟件包此存儲(chǔ)庫(kù)包含以下軟件 概述 使用這個(gè)教程在 LTS Ubuntu Linux 使用 .deb 軟件包安裝 MongoDB 社區(qū)版. Ubuntu 包含自己的 Mong...
摘要:概述使用這個(gè)教程在使用軟件包安裝社區(qū)版本安裝教程僅支持位操作系統(tǒng)詳細(xì)信息請(qǐng)參閱平臺(tái)支持軟件包在自己的存儲(chǔ)庫(kù)中提供官方支持軟件包此存儲(chǔ)庫(kù)包含以下軟件包軟件名簡(jiǎn)介一個(gè)元軟件包將自動(dòng)安裝下面列出的四個(gè)組件包包含守護(hù)程序和關(guān)聯(lián)配置和初始化腳本 概述 使用這個(gè)教程在 Amazon Linux 使用 .rpm 軟件包安裝 MongoDB 社區(qū)版. 本安裝教程僅支持64位操作系統(tǒng). 詳細(xì)信息請(qǐng)參閱平...
閱讀 3719·2021-11-19 09:56
閱讀 1513·2021-09-22 15:11
閱讀 1189·2019-08-30 15:55
閱讀 3401·2019-08-29 14:02
閱讀 2955·2019-08-29 11:07
閱讀 465·2019-08-28 17:52
閱讀 3195·2019-08-26 13:59
閱讀 461·2019-08-26 13:53