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
}
广告
将在 10 秒后关闭
bannerAds