mongoDB的java實現簡單的評分、評論和標簽
3
用mongodb 的java開發包
實現歌曲的評分、評論、標簽的基本功能。
第一次使用,如果有不對的地方希望能有熱心人不吝賜教。
package mongodb;
import java.util.ArrayList;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
public class A1 {
public static Mongo m=null;
public static DB db=null;
public static DBCollection coll1 = null;
//這個靜態塊用來連接mongodb數據庫,默認端口
static {
try {
m = new Mongo();
} catch (Exception e) {
e.printStackTrace();
}
db = m.getDB("mydb");
coll1 = db.getCollection("music");
}
public static void main(String[] args) throws Exception {
//建立一個基本的對象,存基本信息,像歌曲的歌手,歌曲名
BasicDBObject doc = new BasicDBObject();
doc.put("id", 1001);
doc.put("singer", "劉德華");
doc.put("song", "愛你一萬年");
//評分為一個單獨的對象,可沒有初始數據。
BasicDBObject score = new BasicDBObject();
score.put("0", 3);
score.put("1", 1);
score.put("2", 5);
score.put("3", 4);
score.put("4", 16);
score.put("5", 16);
doc.put("someScore", score);
//評論的基本信息,可沒有初始數據。
List<String> reviews =new ArrayList<String>();
reviews.add("很喜歡");
doc.put("someReview", reviews);
coll1.drop();
coll1.insert(doc);
DBCursor cur = coll1.find();
while (cur.hasNext()) {
System.out.println("修改前的數據:"+cur.next());
}
System.out.println("-------");
addARevert("不好聽");
addARevert("打醬油");
addARevert("真的挺不錯,一直很喜歡劉德華");
addAScore(5);
addAScore(4);
addAScore(2);
addATags("經典");
addATags("四大天王");
addATags("流行");
addATags("流行");
addATags("經典");
addATags("經典");
addATags("劉德華");
//顯示出修改數據
DBCursor cur1 = coll1.find();
while (cur1.hasNext()) {
System.out.println("修改后的數據:"+cur1.next());
}
}
//加歌曲標簽
public static void addATags(String tag){
BasicDBObject tagO =new BasicDBObject();
tagO.append("tags."+tag, 1);
BasicDBObject doc =new BasicDBObject();
doc.put("$inc", tagO);
coll1.update(new BasicDBObject().append("id", 1001), doc);
}
//評分
public static void addAScore(int i){
BasicDBObject doc =new BasicDBObject();
doc.put("$inc", new BasicDBObject().append("someScore."+i, 1));
coll1.update(new BasicDBObject().append("id", 1001), doc);
}
//加評論
public static void addARevert(String revert ){
BasicDBObject doc =new BasicDBObject();
doc.put("someReview", revert);
//這個是在數組末添加
BasicDBObject temp=new BasicDBObject().append("$push", doc);
coll1.update(new BasicDBObject().append("id", 1001), temp);
}
}轉自:http://wdhdmx.iteye.com/blog/1223155