1. 程式人生 > >mongodb配置和基本操作

mongodb配置和基本操作

特性 服務 win done service 基本 添加 close english

MongoDB
3.0新特性
WiredTiger
MMAPv1
可插拔引擎API
基於web的可視化管理工具

查看版本號
mongod --version
啟動數據庫

mongod --dbpath $dbpath --logpath $logpath --logappend --fork --port=27000

$dbpath 數據目錄
$logpath 是log文件的路徑 不是目錄路徑
logappend 日誌追加方式
--fork 後臺運行

在win下
添加到系統服務中

mongod --dbpath $dbpath --logpath $logpath --logappend --install/remove --serviceName "
MongoDb"

可以用 服務再啟動
net start/stop MongoDB

mongod --dbpath ./data --logpath ./log/mongo.log --logappend --fork

操作

啟動

mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/log/mon.log --logappend --fork --port=27000

默認端口 27017
連接
mongo 遠程主機ip或DNS:MongoDB端口號/數據庫名 -u user -p password
mongo 127.0.0.1:27000
mongo --port=27017


查詢所有數據庫
show databases
關閉
在一個已經連接上的客戶端
use admin
db.shutdownServer()

根據配置文件來啟動

建立mongodb.conf

#設置數據目錄
dbpath=/usr/local/mongodb/data
#設置日誌文件位置
logpath=/usr/local/mongodb/log/mon.log
#打開日誌輸出操作
logappend=true
#不使用用戶管理驗證
noauth=true
port=27017

指定配置文件來啟動
mongod -f /usr/local/mongodb/mongodb.conf

-----------------------------------

基本操作

1.使用hk數據庫
> use hk
switched to db hk
> show databases
admin 0.000GB
local 0.000GB
當沒有實際的數據操作時,use 不會創建數據庫

2.創建集合

db.createCollection("stu")

> db.createCollection("stu")
{ "ok" : 1 }
> show databases
admin  0.000GB
hk     0.000GB
local  0.000GB

這時hk數據庫才會被真正創建

查看集合裏所有的數據
db.stu.find()

3.插入數據
db.stu.insert({"name":‘hk‘,‘age‘:10,‘class‘:20});

> db.stu.find()
> db.stu.insert({"name":hk,age:10,class:20});
WriteResult({ "nInserted" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59295c842e2070afc7e34f3e"), "name" : "hk", "age" : 10, "class" : 20 }

查看集合
> show collections
stu

4.查看hk表數據
db.集合名稱.find({若幹條件})
插入不同結構的數據

var data={
   "name":"張三",
   "sex":"男",
   "hobby":"足球",
   "english":89
};
db.stu.insert(data);
> db.stu.find()
{ "_id" : ObjectId("59295c842e2070afc7e34f3e"), "name" : "hk", "age" : 10, "class" : 20 }
{ "_id" : ObjectId("59295e3e2e2070afc7e34f3f"), "name" : "張三", "sex" : "男", "hobby" : "足球", "english" : 89 }

mongodb每一條記錄會生成_id
組成=時間戳+機器碼+PID+計數器

5.查看單獨的文檔信息

> db.stu.findOne()
{
    "_id" : ObjectId("59295c842e2070afc7e34f3e"),
    "name" : "hk",
    "age" : 10,
    "class" : 20
}

6.刪除數據

db.stu.remove({"_id" : ObjectId("59295c842e2070afc7e34f3e")});
> db.stu.remove({"_id" : ObjectId("59295c842e2070afc7e34f3e")});
WriteResult({ "nRemoved" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59295e3e2e2070afc7e34f3f"), "name" : "張三", "sex" : "男", "hobby" : "足球", "english" : 89 }

7.更新數據

var data={
   "name":"張三",
   "sex":"女",
   "hobby":"跳舞",
   "english":99
};
db.stu.update({ "_id" : ObjectId("59295e3e2e2070afc7e34f3f")},data);

操作示例

技術分享
> var data={
...    "name":"張三",
...    "sex":"",
...    "hobby":"跳舞",
...    "english":99
... };
> db.stu.update({ "_id" : ObjectId("59295e3e2e2070afc7e34f3f")},data);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59295e3e2e2070afc7e34f3f"), "name" : "張三", "sex" : "", "hobby" : "跳舞", "english" : 99 }
完全不同結構的文檔更新
> var data={
...      "a":ajax
... }
> db.stu.update({ "_id" : ObjectId("59295e3e2e2070afc7e34f3f")},data);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.stu.find()
{ "_id" : ObjectId("59295e3e2e2070afc7e34f3f"), "a" : "ajax" }
View Code

8.刪除集合

db.stu.drop()
> db.stu.drop()
true
> show collections

9.刪除數據庫(刪除刪除當前所在的數據庫,先切換再操作)

db.dropDatabase()

mongodb配置和基本操作