Tag: mongodb

通过java应用程序连接在mongolab中创建的mongodb

我在mongolab中创建了一个mongodb实例它为我提供了一个连接URI。 mongodb://:@ds041177.mongolab.com:41177/myclouddb 我使用以下java代码连接到我的数据库 – Mongo m = new Mongo(); com.mongodb.DBAddress dba=new DBAddress(“mongodb://admin:password@ds041177.mongolab.com:41177/myclouddb”); m.connect(dba); 但是这会抛出NumberFormatException java.lang.NumberFormatException: For input string: “” 我究竟做错了什么?

在ElasticSearch中获取SearchResponse的结果

我正在尝试使用ES作为MongoDB的索引。 我已成功地将它们集成,但我发现搜索API相当复杂和令人困惑。 Java API也没有太大帮助。 我能找到完全匹配,但我怎样才能得到这个结果? 这是我的代码: Node node = nodeBuilder().node(); SearchResponse sr = node.client().prepareSearch() .addAggregation( AggregationBuilders.terms(“user”).field(“admin2san”) .subAggregation(AggregationBuilders.terms(“SPT”).field(“64097”)) ) .execute().actionGet(); SearchHit[] results = sr.getHits().getHits(); List myfirewall = results.getSourceAsObjectList(Firewall.class); for (Firewall info : myfirewall) { System.out.println(“search result is ” + info); }

在MongoDB和Apache Solr之间同步数据的简便方法

我最近开始使用MongoDB和Apache Solr。 我使用MongoDB作为数据存储,我希望Apache Solr为我的应用程序中的搜索function创建数据索引。 经过一些研究我发现,基本上有两种方法可以在MongoDB和Solr之间同步数据。 1)使用Solr DataImportHandler – 为此,我使用了由james创建的SolrMongoImporter,并在github上关注了他的教程 我能够成功运行Import Handler并且Solr识别出ImportHandler,但它没有将任何文档导入solr。 每次它说更新的文件= 0。 2)然后我尝试切换到MongoDB端,看看是否存在任何东西,我发现10gen提供了MongoDBConnector 。 当我按照说明操作并运行连接器时,它会尝试将大量文档发布到Solr,并提供以下输出。 2012-11-24 15:15:20,665 – INFO – Finished ‘http://localhost:8983/solr/update/?commit=true’ (POST) with body ” in 0.010 seconds. 2012-11-24 15:15:21,674 – INFO – Finished ‘http://localhost:8983/solr/update/?commit=true’ (POST) with body ” in 0.009 seconds. 2012-11-24 15:15:22,683 – INFO – Finished ‘http://localhost:8983/solr/update/?commit=true’ (POST) with body ” […]

使用MongoDB时是否需要JPA?

我对这两者感到很困惑。 我正在看戏! java框架,它说它使用JPA。 我正在考虑使用Play! 和MongoDB在项目中的第一次。 我之前使用过JPA,但我当时正在使用它来写入关系数据库(mysql)。 MongoDB不是关系数据库,所以如果我想在Play!中使用它,我还需要JPA吗? 或者只是MongoDB驱动程序? 我想我在这里混淆了很多东西,所以如果有人能帮助澄清事情,我会很感激!

Spring MongoRepository正在更新或插入而不是插入

我用的是: org.springframework.data.mongodb.repository.MongoRepository 我从一个空DB开始,例如用_id = 1234创建一个对象,然后将一些其他String字段设置为hello ,然后执行: repository.save(object); 一切都很好,它将文档保存在MondoDB中。 我创建一个NEW对象,设置相同的_id = 1234但将另一个String字段设置为world ,然后设置为另一个save: repository.save(newObject); 结果:保存工作但更新原始对象。 预期结果:这应该因DuplicateKeyException而失败,因为_id是唯一的,并且我在执行每次保存时使用2个单独的对象。 spring的缺陷还是我做错了什么?

检查MongoDB服务器是否正在运行,凭据在Java中是否有效

我正在编写一个UI,用户应该可以在其中放入URL和端口来检查mongoDB服务器是否正在运行。 此外,他应该能够在必要时提供证书。 如果服务器没有运行或凭据错误,我想为每个案例提供一条消息。 这里回答了类似的问题: 使用Java 3.0驱动程序检查MongoDB身份validation 如何从驱动程序检查mongoDB服务器是否正在运行 不幸的是,他们使用旧版本的Java驱动程序用于mongo。 我正在使用3.2+版本的MongoDB java驱动程序,即不推荐使用getDB()。 我对这个问题的“解决方案”看起来有点像这样: try { String database = “test”; MongoClient client = null; if (StringUtils.isNotBlank(username) && StringUtils.isNotBlank(password)) { MongoCredential credentials = MongoCredential.createCredential(username, database, password.toCharArray()); client = new MongoClient(new ServerAddress(url, Integer.parseInt(port)), Arrays.asList(credentials)); } else { client = new MongoClient(url, Integer.parseInt(port)); } MongoDatabase db = client.getDatabase(database); db.listCollectionNames().first(); client.close(); return […]

使用Java在MongoDB中查询数组元素的文档

我是MongoDB的新手。 我的样本文件是 { “Notification” : [ { “date_from” : ISODate(“2013-07-08T18:30:00Z”), “date_too” : ISODate(“2013-07-30T18:30:00Z”), “description” : “fdfd”, “url” : “www.adf.com” }, { “date_from” : ISODate(“2013-07-01T18:30:00Z”), “date_too” : ISODate(“2013-07-30T18:30:00Z”), “description” : “ddddddddddd”, “url” : “www.pqr.com” } ], 我正在尝试更新其”url” : “www.adf.com”的通知。 我的Java代码是: BasicDBObject query=new BasicDBObject(“url”,”www.adf.com”); DBCursor f = con.coll.find(query); 它不会搜索”url”为”www.adf.com”的文档。

如何使用Java在MongoDB中执行批量更新文档

我正在使用MongoDB 3.2和MongoDB Java Driver 3.2。 我有一个包含数百个更新文档的数组,现在应该保存/存储在MongoDB 。 为了做到这一点,我迭代数组并为此数组中的每个文档调用updateOne()方法。 现在,我想通过批量更新重新实现此逻辑。 我尝试使用MongoDB Java Driver 3.2在MongoDB 3.2中找到批量更新的示例。 我试过这段代码: MongoClient mongo = new MongoClient(“localhost”, 27017); DB db = (DB) mongo.getDB(“test1”); DBCollection collection = db.getCollection(“collection”); BulkWriteOperation builder = collection.initializeUnorderedBulkOperation(); builder.find(new BasicDBObject(“_id”, 1001)).upsert() .replaceOne(new BasicDBObject(“_id”, 1001).append(“author”, “newName”)); builder.execute(); 但似乎这种方法基于过时的MongoDB Java Driver ,例如2.4并使用不推荐的方法。 我的问题: 如何使用MongoDB Java Driver 3.2在MongoDB 3.2中执行批量更新文档?

使用Java play 2.0的mongodb数据库

是否有一个教程如何在Java play 2.0中使用mongodb数据库? 在官方网站(playframework.org)上似乎只有NoSql示例。

在MongoDB中的对象内插入数组

我是MongoDB的新手,我想插入像这样的mongodb数据,但我无法弄清楚如何 { image = “cab” tags = [ [ “NNP”, 0 ], [ “NN”, 1 ] ] }, { image = “castle” tags = [ [ “NNP”, 2 ], [ “NN”, 1 ], ] } 我的代码是 BasicDBObject obj = new BasicDBObject(); obj.put(“images”, ….); for(Tag tag:tags){ BasicDBObject tagsObj = new BasicDBObject(); tagsObj.put(“NNP”,tag.getNNP()); tagsObj.put(“NN”,tag.getNN()); obj.put(“tags”,tagsObj); } 更新:使用此代码 […]