MongoDB 数据库笔记
▼安装MongoDB
$ brew install mongodb
手动启动 qǐ
$ mongod &
▼安装mongoose
$ npm install mongoose
手动启动
$ mongo
▼手册
http://docs.mongodb.org/manual/
▼参考
尝试使用Node.js处理MongoDB的基础教程 – Eureka技术部
http://d.hatena.ne.jp/eureka_tech/20110712/1310472120
$ mongo #起動
MongoDB shell version: 1.6.3
connecting to: test
MongoDB会自动创建数据库和集合,如果它们不存在的话。
> db = connect("localhost/test") # 使うデータベースをtestに指定
将数据插入到数据库中。
> db.users.save({username:"mizchi",password:"password",params:["A","B"]}); #usersのコレクション挿入してみる
> db.users.save({username:"koni",password:"konisimple",params:["B","C"]} ) #もうひとつ挿入
请确认总数。
> db.users.find().count() # 中身が挿入されたか、総数をみて確認
2
使用空查询进行搜索(获取全部)。
> db.users.find() # 空のクエリで検索(全部とってくる場合)
{ "_id" : ObjectId("4e077d13984bb3412af1a0d1"), "username" : "mizchi", "password" : "password", "params" : [ "A", "B" ] }
{ "_id" : ObjectId("4e077deb984bb3412af1a0d2"), "username" : "koni", "password" : "konisimple", "params" : [ "B", "C" ] }
使用查询条件进行搜索
> db.users.find({username:"koni"}) # クエリで条件指定して検索 username == "koni"のものq
{ "_id" : ObjectId("4e077deb984bb3412af1a0d2"), "username" : "koni", "password" : "konisimple", "params" : [ "B", "C" ] }
删除符合条件的项目
> db.users.remove( { username : "mizchi" } )
▼清空
> db.users.drop() # 空にする
true
> db.users.find().count() # 総数をみて確認
0
显示数据库列表
> show dbs
显示当前正在使用的数据库名称。
> db
请指定要使用的数据库名称。
> use mydb
请确认当前数据库中存在的集合。
> show collections
system.indexes
users
▼提取数据>添加数据>保存>确认
> var mongo = db.things.findOne({name:"mongo"}); # データを取得
> print(tojson(mongo)); # 出力
{"_id" : "497dab624ee47b3a675d2d9c" , "name" : "mongo"}
> mongo.type = "database"; # データ追加
database
> db.things.save(mongo); # 保存
> db.things.findOne({name:"mongo"}); # 確認
{"_id" : "497dab624ee47b3a675d2d9c" , "name" : "mongo" , "type" : "database"}
参考来源:
Mongo 数据更新 – Docs-Japanese – 10gen Confluence
https://wiki.10gen.com/pages/viewpage.action?pageId=18907286
熟练操作MongoDB-理解其机制和行为 – doryokujin的博客
请查看数据库状态。
> db.stats()
{
"db" : "test",
"collections" : 4,
"objects" : 11,
"avgObjSize" : 53.81818181818182,
"dataSize" : 592,
"storageSize" : 20480,
"numExtents" : 4,
"indexes" : 2,
"indexSize" : 16352,
"fileSize" : 201326592,
"nsSizeMB" : 16,
"ok" : 1
}
请确认是否发生了内存泄漏。
> db.serverStatus().mem
{
"bits" : 64,
"resident" : 61,
"virtual" : 2802,
"supported" : true,
"mapped" : 160,
"mappedWithJournal" : 320
}