多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > MongoDB: 3. Schema Design

MongoDB: 3. Schema Design

來源:程序員人生   發(fā)布時間:2013-11-09 04:55:53 閱讀次數(shù):3669次
1. Document-Oriented

MongoDB 是一種面向文檔(document-oriented)的數(shù)據(jù)庫,其內(nèi)存儲的是一種 JSON-like 結(jié)構(gòu)化數(shù)據(jù)。盡管擁有和關(guān)系型數(shù)據(jù)庫 Database/Table 類似的的 DB/Collection 概念,但同一 Collection 內(nèi)的 Document 可以擁有不同的屬性。

(注: 以下 > 提示符表示 mongo JS 代碼,>>> 為 Python 代碼)

> use blog
switched to db blog

> db.users.insert({name:"user1", age:15})
> db.users.insert({name:"user2", age:20, sex:1})

> db.users.find()
{ "_id" : ObjectId("4c479885089df9b53474170a"), "name" : "user1", "age" : 15 }
{ "_id" : ObjectId("4c479896089df9b53474170b"), "name" : "user2", "age" : 20, "sex" : 1 }
可以通過 $exists 判斷某個字段是否存在。

> db.users.find({sex:{$exists:true}})
{ "_id" : ObjectId("4c479896089df9b53474170b"), "name" : "user2", "age" : 20, "sex" : 1 }
2. Embed vs. Reference

Document 采取 JSON-like 這種層級結(jié)構(gòu),因此我們可以直接用嵌入(Embed)代替?zhèn)鹘y(tǒng)關(guān)系型數(shù)據(jù)庫的關(guān)聯(lián)引用(Reference)。

> u = db.users.findOne({name:"user1"})
{
"_id" : ObjectId("4c479885089df9b53474170a"),
"name" : "user1",
"age" : 15
}

> u.address = ["address1", "address2"]
[ "address1", "address2" ]

> db.users.save(u)

> db.users.findOne({name:"user1"})
{
"_id" : ObjectId("4c479885089df9b53474170a"),
"name" : "user1",
"age" : 15,
"address" : [
"address1",
"address2"
]
}

> db.users.findOne({address:"address1"})
{
"_id" : ObjectId("4c479885089df9b53474170a"),
"name" : "user1",
"age" : 15,
"address" : [
"address1",
"address2"
]
}
MongoDB 支持以 "." 分割的 namespace 路徑,但需要注意 key 不能以 "$" 開頭,不能包含 "." 字符 (條件表達式中的多級路徑須用引號)。

> u = db.users.findOne({address:"address1"})
{
"_id" : ObjectId("4c479885089df9b53474170a"),
"name" : "user1",
"age" : 15,
"address" : [
"address1",
"address2"
]
}

> u.im = {msn:"user1@hotmail.com", qq:12345678}
{ "msn" : "user1@hotmail.com", "qq" : 12345678 }

> db.users.save(u)

> u = db.users.findOne({"im.qq":12345678})
{
"_id" : ObjectId("4c479885089df9b53474170a"),
"name" : "user1",
"age" : 15,
"address" : [
"address1",
"address2"
],
"im" : {
"msn" : "user1@hotmail.com",
"qq" : 12345678
}
}

> u.im.qq
12345678

> u.im.msn
user1@hotmail.com

> db.users.update({"im.qq":12345678}, {$set:{"im.qq":12345}})

> u = db.users.findOne({"im.qq":12345})
{
"_id" : ObjectId("4c479885089df9b53474170a"),
"name" : "user1",
"age" : 15,
"address" : [
"address1",
"address2"
],
"im" : {
"msn" : "user1@hotmail.com",
"qq" : 12345
}
}

> u = db.users.find({"im.qq":{$exists:true}}, {"im.qq":1})
{ "_id" : ObjectId("4c479885089df9b53474170a"), "im" : { "qq" : 12345 } }
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲日本中文字幕天堂网 | 亚洲成a人片在线观看播放 亚洲成a人片在线观看精品 | 视频在线观看视频 | 女性一级全黄生活片免费看 | 中文字幕在亚洲第一在线 | 欧美日韩亚洲区久久综合 | 综合欧美视频一区二区三区 | 久久久国产精品免费 | 国产毛片儿 | 伊人不卡久久大香线蕉综合影院 | 欧美日韩综合一区 | 自拍一区在线 | 在线观看麻豆精品国产不卡 | 日本一级淫片免费放 | 亚洲精品毛片久久久久久久 | 中文字幕曰韩一区二区不卡 | 国产精品毛片一区二区三区 | 亚洲大成色www永久网址 | 91av片| 久久精品综合一区二区三区 | 国产精品1区2区 | 一级做α爱过程免费视频 | 成人午夜精品网站在线观看 | 欧洲免费无线码二区5 | 欧美free性| 色最快国产 | 亚洲区精品久久一区二区三区 | 久久精品在线视频 | 欧美性狂猛bbbbbbxxxx | 欧美xxxxhd| 全国男人的天堂网站 | xxx护士| 国产成人精品免费久久久久 | 午夜dj高清中文免费观看 | 免费看黄的网址 | 视频在线观看免费视频 | 国产美女视频爽爽爽 | 亚洲精品国自产拍在线观看 | 亚洲欧洲春色校园另类小说 | 日韩高清一区二区三区五区七区 | 亚洲精品福利在线观看 |