今天又測試了 MongoDB,覺得還蠻有趣的,只管新增資料,就可以直接查詢了,毋須留意 table schema。
主要有兩個測試,分列如下:
[Question 1]
relational database 中的一筆資料有多個欄位,在 MongoDB 中如何達到這種效果呢?
Answer:
其實所謂的 name value pair,並不是指一筆 record 只允許有一組值而已。而是像 JSON,一筆 record 允許多個 property 及其值,甚至也允許一個 property 之值為 JSON (亦即多組 name value)之值。
舉例最快:
db.foo.insert ({name:"Mary", age:25, address:"XinZhuang 40, New Taipei", city:"NewTaipei"});
db.foo.insert( { _id: "Alex", name: {first:"Alex", last:"Bush" }, age: 35})
ps: 其中,foo 是一個 collection,在語法上可以 show collections; 來列出全部的 collections。collection 在概念上就像 relational database 中的 table,只不過 collection 不需要自己 create,而且如果存放的 property 變動時,毋須 alter table 的指令,只管變動即可。
[Question 2]
How to select data in MongoDB?
Answer:
其實,MongoDB 網站以及網路上已經有人將 relational database 常用到的 SQL command 對應到 MongoDB 的用法寫出來了。基本的用法應該還蠻直覺的,而我目前還沒有研究到比較複雜的用法。
實例如下:
db.foo.find(); //列出 foo collection 中之全部 record: select * from foo;
db.foo.find({age:25}); // select * from foo where age = 25;
db.foo.find({name:"Mary"}); //select * from foo where name = "Mary";
其他像 >, <, like, order by... 等等,也都有相對應語法。
對了,有一點要特別注意的是,英文大小寫是視為不同的,這與 MySQL 預設是不同的。
0 意見:
張貼留言