MongoDB 初體驗
因為 Web Mining final project 我們想做 twitter tweet 的 clustering 及 classification,所以需要從 twitter 下載大量的 Tweet 做為實驗用途。一開始我是把這些 tweet 存成 JSON 在文字檔裡,不過隨著 tweet 量越來越多,用文字檔實在很難處理。由於本來就是存成JSON的格式,所以就想到了 MongoDB。
之前只有玩過try MongoDB, 從來沒有好好用過他,這次剛好有這個機會就來用一下 :P
裝好MongoDB後就可以開始始用了。由於這次 project 是用 ruby 寫的(因為有方便的 Twitter Gem 可以用),所以我用了 Mongo Gem 。Mongo Gem 的用法跟 Mongo shell 裡的用法差不多,簡單的用法如下,更多的說明可以參考 Mongo Gem 的 wiki。
#!/usr/bin/env ruby
require 'mongo'
include Mongo
mongo_client = MongoClient.new("localhost", 27017)
db = mongo_client.db("test_db")
# Add user
db.add_user("test", "pwd")
# Authenticate, required when remote access
db.authenticate("test", "pwd")
col = db.collection("test_collection")
for i in 1..100
col.insert({:seq => i, :val => i * 2})
end
# List all record
col.find.each do |rec|
puts rec
end
# List record where val == 4
col.find({:val => 4}).each do |rec|
puts rec
end
# Remove record where val == 4
col.remove({:val => 4})
# Drop collection
col.drop
# Drop database
mongo_client.drop_database("test_db")
留言