Mongodb快速入门之使用Java操作Mongodb


  我们希望用不同的方式,通过JAVA代码向Mongodb插入以上格式的JSON数据

  第一种方法,是使用BasicDBObject,方法如下代码所示:

BasicDBObject document = new BasicDBObject();
document.put(
" database " , " mkyongDB " );
document.put(
" table " , " hosting " );
BasicDBObject documentDetail
= new BasicDBObject();
documentDetail.put(
" records " , " 99 " );
documentDetail.put(
" index " , " vps_index1 " );
documentDetail.put(
" active " , " true " );
document.put(
" detail " , documentDetail);
collection.insert(document);

  第二种方法是使用BasicDBObjectBuilder对象,如下代码所示:

  BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start()
  .add(
" database " , " mkyongDB " )
  .add(
" table " , " hosting " );
  BasicDBObjectBuilder documentBuilderDetail
= BasicDBObjectBuilder.start()
  .add(
" records " , " 99 " )
  .add(
" index " , " vps_index1 " )
  .add(
" active " , " true " );
  documentBuilder.add(
" detail " , documentBuilderDetail.get());
  collection.insert(documentBuilder.get());

  第三种方法是使用Map对象,代码如下:

  Map documentMap = new HashMap();
  documentMap.put(
" database " , " mkyongDB " );
  documentMap.put(
" table " , " hosting " );
  Map documentMapDetail
= new HashMap();
  documentMapDetail.put(
" records " , " 99 " );
  documentMapDetail.put(
" index " , " vps_index1 " );
  documentMapDetail.put(
" active " , " true " );
  documentMap.put(
" detail " , documentMapDetail);
  collection.insert(
new BasicDBObject(documentMap));

  第四种方法,也就是最简单的,即直接插入JSON格式数据

  String json = " {'database' : 'mkyongDB','table' : 'hosting', " +
  
" 'detail' : {'records' : 99, 'index' : 'vps_index1', 'active' : 'true'}}} " ;
  DBObject dbObject
= (DBObject)JSON.parse(json);
  collection.insert(dbObject);

  这里使用了JSON的parse方法,将解析后的JSON字符串转变为DBObject对象后再直接插入到collection中去。





mongodb的java driver执行“原生查询”语句

分类: MongoDB 186人阅读 评论(0) 收藏 举报
 DBObject o=(DBObject) JSON.parse("{ groups.groupName : 'group1' }");

              DBObject o2=(DBObject) JSON.parse("{ groups.size : 0 }");     

//这个格外的部分是 filed selection,为0你看结果里面就没有这个filed,如果为1则是只有这个filed被返回

DB db = new Mongo().getDB("test");
DBCollection coll = db.getCollection("UserInfo");
DBCursor cur = coll.find(o,o2).slaveOk();   //slaveOk是说在 replica模式下,访问secondary(扶手)需要slaveOk    

while(cur.hasNext()){
System.out.println(cur.next());

}

==================result======================================================

{ "_id" : { "$oid" : "4e82e5fe6c7de47b217684a8"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6566c7d169e3e4873d7"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6c26c7d1f4ace2dfe29"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6e96c7d1fb39cf66eb4"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e6fb6c7da5fa87fb8b13"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82e74c6c7d653edb297c32"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
{ "_id" : { "$oid" : "4e82ea436c7da72043cf2e4c"} , "className" : "vo.UserInfo" , "email" : "a@email.com" , "groups" : [ { "groupName" : "group1"} , { "groupName" : "group2"}]}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值