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