java setdocument_如何转换Mongo Document至java Set <String>?

我已经将Set保存为mongodb作为数组,然后我想再次将它加载到Set。这个怎么做?如何转换Mongo Document至java Set ?

我尝试回报例外:

package Database;

import static com.mongodb.client.model.Filters.eq;

import static com.mongodb.client.model.Projections.fields;

import static com.mongodb.client.model.Projections.include;

import java.util.HashSet;

import java.util.Set;

import org.bson.Document;

import com.mongodb.MongoClient;

import com.mongodb.MongoClientURI;

import com.mongodb.client.FindIterable;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoDatabase;

public class StackOverflow {

public static void main(String[] args) {

// insert something to mongo:

final String URI = "mongodb://localhost:27017";

final String DB = "StackOverflowQuestion";

final String COLLECTION = "eqDoesntExcist";

MongoClientURI connection = new MongoClientURI(URI);

MongoClient mongo = new MongoClient(connection);

MongoDatabase database = mongo.getDatabase(DB);

MongoCollection collection = database.getCollection(COLLECTION);

Set namesOfTroysKids = new HashSet<>();

namesOfTroysKids.add("Paul");

namesOfTroysKids.add("Jane");

namesOfTroysKids.add("Mark");

namesOfTroysKids.add("Ivona");

Document doc = new Document("name", "Troy").append("height", 185).append("kids", namesOfTroysKids);

collection.insertOne(doc);

// read something from mongo

FindIterable findIt = collection.find(eq("name", "Troy")).projection(fields(include("kids")));

Document d = findIt.first();

Set kids = (Set) d; // ERROR !!!

///Exception in thread "main" java.lang.ClassCastException: org.bson.Document cannot be cast to java.util.Set

//at Database.StackOverflow.main(StackOverflow.java:45)

}

}

有方法toArray()但它是DBOBJECT进行折旧。

2017-09-23

W W

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
补全代码public class Mongo{ public static void main( String args[] ){ try{ MongoClient mongoClient = new MongoClient("Iocalhost",27017); MongoDatabase mongoDatabase = mongoClient.getDatabase(" mydb2"); mongoDatabase.createCollection("_ (1)_ "); MongoC ollection<Document> collection = mongoDatabase.getCollection("test2"); Document document1 = new Document(; document1._ (2)_ document1.append(" name","Xiaoming"); document1.append(" sex",' man"); document1.append(" age" ,21); Document document2 = new Document(); document2.append("_ id","2"); document2.append("name","Xiaohong"); document2.append(" sex' ;' woman"); document2.append(" age" ,20); Document document3 = new Document0; document3.append(" id","3"); document3.append("name","Xiaoliang"); document3.append("sex"," man"); document3.append(" age" ,22); List <Document> documents = new ArrayList <Document>0; (3)__ ; documents.add(document2); documents. add(document3); collection.__ (4)__ ; Findlterable <Document> iter =__ (5)__ ; System.out.printn("文档插入结果如下: "); iter.forEach(new Block <Document>() { public void apply(Document _doc) { System.out.printIn( _doc.tolson0); ); collection.updateMany(Filters.eq( 'name", (6)__ ), collection.updateMany(Filters.eq("name",___ (6)_ ), new Document(" $set",new Document(" age" ,3))); Findlterable <Document> findlterable = collection.find0; MongoCursor<Document> mongoCursor =__ (Z)__ ; System.out.printIn("更新后文档内容如下: "); while(mongoCursor.hasNext0){ System.out.println(mongoCursor.next0); }; collection.deleteMany ( (8)_ );
最新发布
06-11
public class Mongo { public static void main( String args[] ){ try{ MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase mongoDatabase = mongoClient.getDatabase("mydb2"); mongoDatabase.createCollection("test2"); MongoCollection<Document> collection = mongoDatabase.getCollection("test2"); Document document1 = new Document(); document1.append("name", "Xiaoming"); document1.append("sex", "man"); document1.append("age", 21); Document document2 = new Document(); document2.append("_id", "2"); document2.append("name", "Xiaohong"); document2.append("sex", "woman"); document2.append("age", 20); Document document3 = new Document(); document3.append("id", "3"); document3.append("name", "Xiaoliang"); document3.append("sex", "man"); document3.append("age", 22); List<Document> documents = new ArrayList<Document>(); documents.add(document2); documents.add(document3); collection.insertMany(documents); FindIterable<Document> iter = collection.find(); System.out.println("文档插入结果如下: "); iter.forEach(new Block<Document>() { public void apply(Document doc) { System.out.println(doc.toJson()); } }); collection.updateMany(Filters.eq("name", "Xiaohong"), new Document("$set", new Document("age", 3))); FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); System.out.println("更新后文档内容如下: "); while(mongoCursor.hasNext()){ System.out.println(mongoCursor.next()); } collection.deleteMany(Filters.eq("name", "Xiaohong")); } catch (Exception e) { System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值