java与mongodb之间的数据转换问题

Wyman_Liang 2014-05-20 11:40:10
如何java语言用bitset的数据无损地以二进制的形式存放mongodb中
又如何获取mongodb的二进制数据,转换到程序中的bitset来用?希望大神们可以给个代码例子让我参考一下。

以下是我之前用的方法,好像存储前把bitset转换成byte[]的时候就错了 因为我自己写了个输出二进制的函数把byte[0]输出就不是我之前设bitset的二进制数据0111
public static void main(String[] args) throws Exception {

//二进制存储测试
DBCollection coll_index = CreateWordTable.getDBCollection("index");
DBObject dbo = new BasicDBObject();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(outputStream);
BitSet docid=new BitSet();
docid.set(0);docid.set(1);docid.set(2);//二进制 0111
out.writeObject(docid);
dbo.put("key", "Hello");
dbo.put("doc_id_list", outputStream.toByteArray());
out.close();
outputStream.close();
coll_index.insert(dbo);
// 二进制获取测试
// DBCollection coll_index = CreateWordTable.getDBCollection("index");
// DBObject dbo = new BasicDBObject();
// BasicDBObject query = new BasicDBObject();
// query.put("key", "Hello");
// DBObject single_index = coll_index.findOne(query);
//
// List<DBObject> list = coll_index.find(new BasicDBObject("key", "Hello")).toArray();
// if(list != null&& list.size() > 0){
// byte[] b = (byte[]) list.get(0).get("doc_id_list");
//BitSet temp=new BitSet();
//Object temp=single_index.get("doc_id_list");
//b.toString();
// byte[] b=outputStream.toByteArray();
// printBinaryByte(b[0]);

// System.out.println(out.toString());
}
...全文
301 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wyman_Liang 2014-05-20
  • 打赏
  • 举报
回复
nene聂 2014-05-20
  • 打赏
  • 举报
回复
我也有这个疑问,等待大神

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧