Tag: mongo java

java代码在编译时在mongodb中给出错误

我是mongodb的新手,我有以下代码 import com.mongodb.*; import com.mongodb.Block; import com.mongodb.client.AggregateIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import org.bson.types.ObjectId; import static java.util.Arrays.asList; public class getAssets{ public static void main( String args[] ){ Block printBlock = new Block() { @Override public void apply(final Document document) { System.out.println(document.toJson()); } }; MongoClient mongoClient = new MongoClient(“localhost”,27017); MongoDatabase database = mongoClient.getDatabase(“test”); System.out.println(“Connect to […]

Mongo打开了太多连接

我试图在Java循环中向MongoDB写入大量数据。 我根据打开的连接数得到错误。 我的理论是,由于MongoDB不是事务性的,因此可以同时打开许多连接。 然而,Java代码也能够非常快地循环,在一定时间之后循环迭代的次数开始超过可用连接的数量并且Mongo碰到墙。 我的代码看起来像这样。 我已经看到它建议不要做m.close()但是你只是更快地得到错误。 public static void upsert(){ Mongo m = null; DB db = null; try { m = new Mongo(“localhost”); db = m.getDB(“sempedia”); } catch (UnknownHostException e1) { e1.printStackTrace(); } catch (MongoException e1) { e1.printStackTrace(); } // create documents // I am doing an upsert – hence the doc, doc DBCollection […]

使用Java MongoDb驱动程序的Bson漂亮打印

我使用Java MongoDB驱动程序3.3版使用Mongo聚合框架。 我有一个聚合管道 ,它只是List类型的集合。 我试图找到一种方法来打印管道的每个阶段。 在每个元素上调用toString方法是不够的,因为每个阶段都是Bson接口的简单实现的实例,即SimplePipelineStage 。 这个愚蠢的类没有任何toString方法的重写。 使用mongo java驱动程序Aggregates类的工厂方法创建管道,如下所示: Aggregates.match(/* … */) Aggregates.project(/* … */) // And so on… Javadoc可以在这里找到。 我怎么能打印这样的物体? 我确信BasicDbObject类型有一个智能的toString实现,但我找不到从Bson转换为Bson的BasicDbObject 。 非常感谢提前。

如何序列化类?

当我将一个List插入mongodb时,有一个问题: Exception in thread “main” java.lang.IllegalArgumentException: can’t serialize class mongodb.Person at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:234) at org.bson.BasicBSONEncoder.putIterable(BasicBSONEncoder.java:259) at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:198) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:140) at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:86) at com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:27) at com.mongodb.OutMessage.putObject(OutMessage.java:142) at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:252) at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:211) at com.mongodb.DBCollection.insert(DBCollection.java:57) at com.mongodb.DBCollection.insert(DBCollection.java:87) at com.mongodb.DBCollection.save(DBCollection.java:716) at com.mongodb.DBCollection.save(DBCollection.java:691) at mongodb.MongoDB.main(MongoDB.java:45) Person类定义如下: class Person{ private String name; public Person(String name){ this.name = name; } public String getName() { […]

从java连接到mongodb时如何防止登录控制台?

你好 我正在尝试学习mongo-java driver.i,然后按照这个mongodb文档 。 以下是我的代码 public class JMongoDBCDemo { MongoClient mongoClient; DB db; DBCollection coll; public JMongoDBCDemo() { MongoClient mongoClient = new MongoClient( “localhost” , 27017 ); db = mongoClient.getDB( “messenger” ); coll = db.getCollection(“users”); DBObject myDoc = coll.findOne(); System.out.println(myDoc); mongoClient.close(); System.out.println(“Got a collection…”); } public static void main(String[] args){ JMongoDBCDemo mongoDemo = new JMongoDBCDemo(); […]

MongoDB中cursor.count()和cursor.size()之间的区别

MongoDB的DBCursor的cursor.count()和cursor.size()方法有什么DBCursor ?

使用JasperReports库和MongoDB生成PDF

这是我的GeneratePdf.java导入… public class GeneratePdf { public static void main(String[] args) { try { JRDataSource ds = getDatasource(); // – Chargement et compilation du rapport line32 JasperDesign jasperDesign = JRXmlLoader.load(“/home/gocoffee.jrxml”); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); // – Paramètres à envoyer au rapport Map parameters = new HashMap(); parameters.put(“Titre”, “Titre”); // – Execution du rapport JasperPrint jasperPrint = […]

如何从java执行mongo admin命令

我想用java中的参数执行soem admin命令。 命令是: { enablesharding : “test” } { shardcollection : “test.test_collection”, key : {“number”:1} } 我怎么能用java驱动程序呢? 以下代码不起作用: mongo.getDb(“admin”).command(“{shardcollection : \”test.test_collection\”, key:\”number\”:1} }”)

如何查找符合多个条件的文档

我正在尝试使用操作数AND’d一起查询集合。 我有shell版本工作: db.widgets.find({color: ‘black, shape: ’round’, weight: 100}) 我无法找到Java等价物(使用本机驱动程序 )。 我尝试了各种各样的东西,但这是我最近的尝试: // Find all black, round widgets with weight 100 List criteria = new ArrayList(); criteria.add(new BasicDBObject(“color”, “black”)); criteria.add(new BasicDBObject(“shape”, “round”)); criteria.add(new BasicDBObject(“weight”, 100)); DBCursor cur = widgets.find(new BasicDBObject(“$and”, criteria)); // Get all matching widgets and put them into a list List widgetList = new […]

如何从驱动程序检查mongoDB服务器是否正在运行

我想知道,如果有办法检查mongoDB服务器是否从mongoDB的java驱动程序运行? 根据教程,我可以做到 Mongo m = new Mongo(); // or Mongo m = new Mongo( “localhost” , 27017 ); // and DB db = m.getDB( “mydb” ); 但是如何检查我可以使用这些Mongo和DB? 我在API中看不到isConnected()方法。 db.getConnector().isOpen() 返回true 我找到的唯一方法是调用db.getDatabaseNames()并捕获MongoException。 如果有一些更文明的方法?