• mongoDB的java實現簡單的評分、評論和標簽

    3
    Java MongoDB C/C++ Go 13963 次瀏覽

    用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

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色