用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);
}
}