Mongodb java代码

使用mongoDB需要导入以下类,当然不是全部需要,用到的类就导入。 
import com.mongodb.Mongo; 
import com.mongodb.DB; 
import com.mongodb.DBCollection; 
import com.mongodb.BasicDBObject; 
import com.mongodb.DBObject; 
import com.mongodb.DBCursor; 
import com.mongodb.ObjectId; 

类转换 
当把一个类对象存到mongoDB后,从mongoDB取出来时使用setObjectClass()将其转换回原来的类。 
public class Tweet implements DBObject { 
    /* ... */ 

Tweet myTweet = new Tweet(); 
myTweet.put("user", "bruce"); 
myTweet.put("message", "fun"); 
myTweet.put("date", new Date()); 
collection.insert(myTweet); 
//转换 
collection.setObjectClass(Tweet); 
Tweet myTweet = (Tweet)collection.findOne(); 

默认ID 
当保存的对象没有设置ID时,mongoDB会默认给该条记录设置一个ID("_id")。 
当然你也可以设置自己指定的ID,如:(在mongoDB中执行用db.users.save({_id:1,name:'bruce'});) 
BasicDBObject bo = new BasicDBObject(); 
bo.put('_id', 1); 
bo.put('name', 'bruce'); 
collection.insert(bo); 

权限 
判断是否有mongoDB的访问权限,有就返回true,否则返回false。 
boolean auth = db.authenticate(myUserName, myPassword); 

查看mongoDB数据库列表 
Mongo m = new Mongo(); 
for (String s : m.getDatabaseNames()) { 
System.out.println(s); 



查看当前库下所有的表名,等于在mongoDB中执行show tables; 
Set<String> colls = db.getCollectionNames(); 
for (String s : colls) { 
System.out.println(s); 


查看一个表的索引 
List<DBObject> list = coll.getIndexInfo(); 
for (DBObject o : list) { 
System.out.println(o); 


删除一个数据库 
Mongo m = new Mongo(); 
m.dropDatabase("myDatabaseName"); 

建立mongoDB的链接 
Mongo m = new Mongo("localhost", 27017); 
DB db = m.getDB("myDatabaseName"); //相当于库名 
DBCollection coll = db.getCollection("myUsersTable");//相当于表名 

#查询数据 
查询第一条记录 
DBObject firstDoc = coll.findOne(); 
findOne()返回一个记录,而find()返回的是DBCursor游标对象。 

查询全部数据 
DBCursor cur = coll.find(); 
while(cur.hasNext()) { 
System.out.println(cur.next()); 


查询记录数量 
coll.find().count(); 
coll.find(new BasicDBObject("age", 26)).count(); 

设置条件查询 
BasicDBObject condition = new BasicDBObject(); 
condition.put("name", "bruce"); 
condition.put("age", 26); 
coll.find(condition); 

查询部分数据块 
DBCursor cursor = coll.find().skip(0).limit(10); 
while(cursor.hasNext()) { 
System.out.println(cursor.next()); 


比较查询(age > 50) 
BasicDBObject condition = new BasicDBObject(); 
condition.put("age", new BasicDBObject("$gt", 50)); 
coll.find(condition); 
比较符 
"$gt": 大于 
"$gte":大于等于 
"$lt": 小于 
"$lte":小于等于 
"$in": 包含 
//以下条件查询20<age<=30 
condition.put("age", new BasicDBObject("$gt", 20).append("$lte", 30)); 

#插入数据 
批量插入 
List datas = new ArrayList(); 
for (int i=0; i < 100; i++) { 
BasicDBObject bo = new BasicDBObject(); 
bo.put("name", "bruce"); 
bo.append("age", i); 
datas.add(bo); 

coll.insert(datas); 

正则表达式 
查询所有名字匹配 /joh?n/i 的记录 
Pattern pattern = Pattern.compile("joh?n", CASE_INSENSITIVE); 
BasicDBObject query = new BasicDBObject("name", pattern); 
DBCursor cursor = coll.find(query);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值