Tag: mongodb

如何使用java从Json文件导入Mongodb数据

我正在努力将数据从Json文件导入Mongodb 。 我可以使用mongoimport command在命令行中执行相同的操作。 我探索并尝试了很多,但无法使用java从Json文件导入。 sample.json { “test_id” : 1245362, “name” : “ganesh”, “age” : “28”, “Job” : {“company name” : “company1”, “designation” : “SSE” } } { “test_id” : 254152, “name” : “Alex”, “age” : “26”, “Job” : {“company name” : “company2”, “designation” : “ML” } } 谢谢你的时间。 〜Ganesh神〜

Spring Data MongoDB和/或带有多个可选参数的查询

我正在尝试使用2个以上的可选参数执行查询,但我没有得到任何结果。 对于2个参数,我按照这个问题的答案spring-data-mongo – 可选的查询参数? 。 例如,使用以下查询一切正常: @Query(“{$and: [{$or : [ { $where: ‘?0 == null’ } , { a : ?0 } ]}, {$or : [ { $where: ‘?1 == null’ } , { b : ?1 }]}]}”) 但是,如果我再添加一个参数,它就会停止工作: @Query(“{ $and : [{$and: [{$or : [ { $where: ‘?0 == null’ } , { a […]

spring-data-mongodb在对象再水化时如何处理构造函数?

我已阅读http://static.springsource.org/spring-data/data-mongo/docs/1.1.0.RELEASE/reference/html/#mapping-chapter但无法找到以下基本弹簧数据的答案 – mongodb对象映射问题: 如果我从MongoDB加载以下类的实例: public class Test { private String str1; private String str2; private Date date3; public Test(String str1) { this.str1 = str1; this.date3=new Date(); } } 我理解构造函数Test(String str1)将使用MongoDB文档的顶级字段str1中找到的值进行调用。 我假设这个构造函数相当于显式声明@PersistenceConstructor 。 但是在这种情况下str2, date3字段str2, date3会发生什么? 是否仍会初始化所有不属于构造函数的字段,或者是否会丢失str2, date3值,因为只找到了使用str1的PeristenceConstructor? 最后,这会以什么顺序发生? date3是由构造函数设置的,然后被先前持久化的字段覆盖,反之亦然?

无法从JAVA连接到Mongo SSL副本集

我正在尝试使用SSL加密设置MongoDB的最新版本,我能够从mongo shell连接,但是当我从Java客户端连接时出现错误。 作品 mongo admin –host mongo1.xxxx.com –ssl –sslPEMKeyFile mongoClient.pem –sslCAFile mongoCA.crt 不起作用 public static void main(String args[]){ System.setProperty(“javax.net.ssl.trustStore”,”/home/gasparms/truststore.ts”); System.setProperty(“javax.net.ssl.trustStorePassword”, “mypasswd”); System.setProperty(“javax.net.ssl.keyStore”, “/home/gasparms/truststore.ts”); System.setProperty(“javax.net.ssl.keyStorePassword”, “mypasswd”); System.setProperty(“javax.security.auth.useSubjectCredsOnly”,”false”); MongoClientOptions options = MongoClientOptions.builder().sslEnabled(true) .build(); MongoClient mongoClient = new MongoClient(“mongo1.xxxx.com”,options); System.out.println(mongoClient.getDatabaseNames()); } 我从Mongo那边得到这个错误: 2015-06-09T15:08:14.431ZI NETWORK [initandlisten]连接从192.168.33.1:38944#585接受(现已开通3个连接)2015-06-09T15:08:14.445ZE NETWORK [conn585]没有由同行提供的SSL证书; 连接被拒绝2015-06-09T15:08:14.445ZI NETWORK [conn585] end connection 192.168.33.1:38944(2个连接现已开通)2015-06-09T15:08:14.828ZI NETWORK [conn580] end connection 192.168.33.13:39240 […]

如何从数据库服务器插入带有时间戳的MongoDB文档

在Oracle中,我可以简单地这样做: INSERT INTO myTable VALUES (‘someValue’,SYSTIMESTAMP); 这会在myTable中插入两个值,其中一个是基于数据库服务器时间的时间戳。 对于MongoDB(通过Java驱动程序)我试过这个: myDoc.put(“value”,”someValue”); myDoc.put(“timestamp”, new Date()); myCollection.insert(myDoc); 但是这会根据客户端计算机的时间创建时间戳,而不是数据库服务器的时间。 有没有办法让MongoDB根据数据库服务器时间对文档应用时间戳?

如何将POSTMAN中的JSON对象发送到Restful Web服务

我正在尝试将json从POSTMAN发送到RESTful webservice。 我已经按照这个教程url通过POSTMAN发送json。 我的url: HTTP://本地主机:8080 /为MyWebService / REST / dataInsert /插入 我的服务方式: @POST @Path(“/insert”) @Consumes(MediaType.APPLICATION_JSON) public String insertData(JSONObject jsonlist) throws UnknownHostException; 我的Impl: @Override public String insertData(JSONObject jsonlist) throws UnknownHostException { System.out.println(jsonlist); insertDataDao.insertData(jsonlist); return “SUCCESS”; } 我的DAO: public String insertData(JSONObject jsonlist) throws UnknownHostException{ System.out.println(jsonlist); MongoConnection mongoconnection = new MongoConnection(); MongoClient mongoclient = mongoconnection.getMongoClient(); MongoDatabase db = […]

如何使用Spring Data MongoDB进行乐观锁定?

我正在阅读Spring Data MongoDB – 参考文档 ,我发现这些示例有点过于简单化了。 特别是我试图了解如何处理并发环境中的陈旧数据。 例如,假设我有以下实体: public class Person { private final String username; private final String firstname; private final String lastname; […] } 现在,如果我使用CrudRepository来保存/更新/删除我的实体,那么想象一下这样一个场景,其中两个线程检索同一个实体,其中一个删除它,另一个更新其lastname字段。 如果delete调用在save调用之前完成,那么当预期行为导致save操作失败时,我的实体将被删除然后重新创建。 到目前为止,我已经看到两种解决此问题的方法: 使用@Version注释。 找不到任何文档说Spring Data支持使用版本化文档在MongoDB中进行乐观锁定。 如果有人能指出我的链接,我们将不胜感激。 使用MongoOperations.findAndModify ,如果返回null失败。 这种方法的缺点是我不能再实现我的存储库API以获得“获取实体”和“保存更新的实体”类型的语义。 例如: User user = userRepository.findByUsername(“uniqueUsername”); user.setLastName(“Archer”); userRepository.update(user); 我想将其中的一部分推送到存储库我猜: userRepository.updateLastname(“uniqueUsername”, “Archer”); 但是我有点担心如果我想要做的每种类型的更新都需要一个新方法,我的存储库接口将无法控制地增长。 我意识到我还没有提出过一个问题,所以这就是:使用Spring Data for MongoDB设计应用程序的最佳实践是什么?

并发 – 以线程安全的方式获取MongoDB生成的通过Java插入的对象的ID

获取通过Java插入的文档的Mongo生成ID的最佳方法是什么。 插入文档的Java进程是multithreading的,这意味着我们需要一些primefaces方式来插入和返回对象的ID。 另外,如果我们设置一个唯一索引,如果该对象是重复的,是否会返回一个ID? 谢谢!

使用Java从mongodb检索数组值

我有以下代码: DBCollection collsc = db.getCollection(“StudentCourses”) ; BasicDBObject querysc = new BasicDBObject(“StudentID”,id ); DBCursor curssc = collsc.find(querysc); while(curssc.hasNext()) { DBObject e = curssc.next(); System.out.println(“You are currently registered for the following modules: “) ; System.out.println(e.get(“CoursesRegistered”)) ; } 这输出: You are currently registered for the following modules: [ “DigitalLogic” “OperatingSystems” , “FundamentalsCSE”] 但是我只希望从数组中返回值,即DigitalLogic,OperatingSystems和FundamentalsCSE。 我将使用这些值来填充JList。 请帮助?

谷歌应用引擎和mongodb

我在谷歌应用引擎上使用Java和MongoDB,但我找不到任何关于如何用Java连接到MongoDB的参考。 我试过以下内容: Maven的: org.mongodb mongo-java-driver 2.6.3 Java的: String serverName = “”; //provided external and internal ip addresses as well as name of mongoDB instance, Mongo mongo = new Mongo(serverName); //com.addsapp.dao.MongoDB.initDB1(MongoDB.java:39) 得到以下结果: Uncaught exception from servlet java.lang.ExceptionInInitializerError at com.mongodb.Bytes.(Bytes.java:215) at com.mongodb.MongoOptions.reset(MongoOptions.java:32) at com.mongodb.MongoOptions.(MongoOptions.java:28) at com.mongodb.Mongo.(Mongo.java:175) at com.mongodb.Mongo.(Mongo.java:140) at com.addsapp.dao.MongoDB.initDB1(MongoDB.java:39) … 有没有人有一个很好的Java参考如何做到这一点? 在netz上找不到任何东西。 谢谢。