Tag: mongodb

Morphia List <Map >>返回嵌入式元素在查找操作时不是DBObject

我试图做这样的事情: package org.dnylabs.kosh.data; import java.net.UnknownHostException; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import com.google.code.morphia.Datastore; import com.google.code.morphia.Morphia; import com.google.code.morphia.annotations.Entity; import com.google.code.morphia.annotations.Id; import com.mongodb.Mongo; import com.mongodb.MongoException; @Entity public class Temp { @Id String _id; List<Map> strings; public Temp(){ strings=new LinkedList<Map>(); } public static void main(String []args) throws UnknownHostException, MongoException{ Mongo mongo=null; Morphia morphia=null; Datastore ds=null; mongo […]

MongoDB和upsert问题

我有两个型号: 1 ResourceVacation: @Id private String resourceID; private List vacationList; 2 – 休假: @Id private String id; private String start; private String title; 插入后,ResourceVacation的JSON: {“_ id”:“foo”,“_ class”:“com.test.model.ResourceVacation”,“vacationList”:[{“_ id”:“1”,“start”:“abc”,“title”:“测试“}]} 我需要一个假期;如果我需要的resourceId已经存在于ResourceVacation中,请将“vacationList”替换为我所拥有的json。 ELSE:插入一个新的ResourceVacation Vacation vacation = new Vacation(“a”, “a”, “a”); List list = new ArrayList(); list.add(vacation); ResourceVacation resourceVacation = new ResourceVacation(“foo”, list); MongoOperations mongoOperations = mongoConfiguration.getMongoTemplate(); DBCollection db […]

MongoDB,Java,按第一个数组条目排序

我正在尝试通过Java API在MongoDB上执行查找后对值进行排序。 结果列表包含以下条目: { “_id”: “P17-223”, “property”: “P17”, “itemid”: 223, “labels”: [ { “language”: “en”, “value”: “Greenland” }, { “language”: “es”, “value”: “Groenlandia” }, { “language”: “de”, “value”: “Grönland” } ] } 我想按数组标签的第一个条目排序: DBCursor cursor = getCollection().find(query); BasicDBObject orderBy = new BasicDBObject(“labels[0].value”, 1); cursor.sort(orderBy); 此代码不对游标值进行排序。 你能帮助我吗?

动态xml进入mongoDB

我目前正在开发一个应用程序(Java),并且可以找到解决我的问题的最佳方法。 我需要在mongoDB中存储数据(当bson格式支持时使用实际数据类型),我获取xml文件中的数据,以及他的模式(两者都是在运行时动态创建的,所以我不知道它里面有什么)。 更具体地说,我没有关于字段,数据名称的任何信息。 用户可以动态地创建新的“对象”(应用程序中没有java类)。 当用户创建一个新对象时,我会收到一个描述该对象的xml架构。 因此,当用户尝试添加此类型的对象(数据为新实体的xml格式)时,我使用xml架构validation它,现在我需要将对象存储在mogoDB中。 所以我需要能够在bson(或使用mongo java驱动程序的基本java对象)中转换我的xml并在查询后转换回xml。 例: 如果用户想要管理人员,他将定义人员架构: … … … … 在这里,我得到了xsd(一个有效的xsd格式,包含所有信息)。 然后,当用户添加人员时,我得到的数据如下: John Smith 32 … 所以我想知道最好的方法是不是像jackson:xml – > Pojo – > bson,或者使用XSLT xml – > json / bson(带有数据类型的编码)。 或者只需手动读取xml文件和我的基本java对象。 有没有人就如何实施其中一种解决方案或更好的解决方案提出一些建议?

是否有一个很好的替代Play,我可以将DynamoDB用于AWS上的Web应用程序?

我正在为最终用户设计一个图像存储应用程序,它将具有许多CRUD类型的function。 我想在Amazon Web Services(AWS)上托管应用程序,并打算使用该游戏! 框架,S3和NoSQL数据库。 我找不到Play的DynamoDB适配器! 并且读到MongoDB和EC2不能很好地相处。 Play可以使用DynamoDB吗? 是否有我应该考虑的替代框架(玩!看起来对我很有吸引力,干净,精益和简单)。

使用Hibernate OGM进行MongoDb身份validation

我可以使用shell命令在我的mongodb上进行身份validation: #mongo -u user -p pwd –authenticationDatabase admin MongoDB shell version v3.4.1 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.1 > use admin switched to db admin > show users { “_id” : “admin.ladmin”, “user” : “ladmin”, “db” : “admin”, “roles” : [ { “role” : “userAdminAnyDatabase”, “db” : “admin” } ] } { “_id” : […]

我该如何解决MongoWaitQueueFullException?

我运行一个java程序,它是一个线程执行程序,它将数千个文档插入mongodb中的表。 我收到以下错误 Exception in thread “pool-1-thread-301” com.mongodb.MongoWaitQueueFullException: Too many threads are already waiting for a connection. Max number of threads (maxWaitQueueSize) of 500 has been exceeded. at com.mongodb.PooledConnectionProvider.get(PooledConnectionProvider.java:70) at com.mongodb.DefaultServer.getConnection(DefaultServer.java:73) at com.mongodb.BaseCluster$WrappedServer.getConnection(BaseCluster.java:221) at com.mongodb.DBTCPConnector$MyPort.getConnection(DBTCPConnector.java:508) at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:456) at com.mongodb.DBTCPConnector.getPrimaryPort(DBTCPConnector.java:414) at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:176) at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:159) at com.mongodb.DBCollection.insert(DBCollection.java:93) at com.mongodb.DBCollection.insert(DBCollection.java:78) at com.mongodb.DBCollection.insert(DBCollection.java:120) at ScrapResults103$MyRunnable.run(MyProgram.java:368) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at […]

在Morphia中,我如何更新ArrayList中的一个嵌入对象

使用Mongodb和Morphia一起真的很新,并看到许多高级答案如何做到这一点。 如果有可能我想简单地做这个@Embedded对象 包含Files对象的fileObjects 。 我无法更新Files的字段。 我想只更新一个字段f.ex String fileHash 。 @Entity public class BatchData { @Id private ObjectId id; @Embedded public ArrayList fileObjects = new ArrayList(); } 更新..在Morphia阅读维基更新不要“真的”说如何只在数组包含这样的Integer时才这样做: @Embedded List roomNumbers = new ArrayList(); 以下是我到目前为止的尝试: mongo.createUpdateOperations(BatchData.class).add(“fileObjects”, Files, false); 此代码插入的Files已在mongo中。 false不会检测到并将其插入数组的末尾。 我可以在Files添加唯一ID,以便检测到数据中是否存在要插入的Files ,然后只更新它? @Embedded public class Files { public Files() { } public int position; public String […]

Java中的命令行查询

我正在访问MongoDB,并希望在Java中重用典型的命令行查询。 我知道可以使用BasicDBObject,但我想使用这样的命令行查询: db.MyCollection.find() 我现在尝试使用数据库的command()方法: MongoClient mongoClient = new MongoClient(“localhost”, 27017); DB db = mongoClient.getDB(“MyDatabase”); CommandResult result= db.command(“db.MyCollection.find()”); JSONObject resultJson = new JSONObject(result.toString()); System.out.println(resultJson.toString(4)); 但是这会给我带来以下结果。 “ok”: 0, “code”: 59, “errmsg”: “no such cmd: db.MyCollection.find()”, “bad cmd”: {“db.MyCollection.find()”: true}, “serverUsed”: “localhost:27017” 如何在Java中运行命令行查询? 我不想使用DBCollection类 – 因为它不再可能为不同的集合运行查询。 DBCollection collection = db.getCollection(“MyCollection”); collection.find(); //NOT THIS

如何从mongoDB数组中返回匹配的元素

我一直在寻找这个问题一周,我无法理解为什么它仍然无效…… 我有这个对象到我的MongoDB数据库: { produc: [ { cod_prod: “0001”, description: “Ordenador”, price: 400, current_stock: 3, min_stock: 1, cod_zone: “08850” }, { cod_prod: “0002”, description: “Secador”, price: 30, current_stock: 10, min_stock: 2, cod_zone: “08870” }, { cod_prod: “0003”, description: “Portatil”, price: 500, current_stock: 8, min_stock: 4, cod_zone: “08860” }, { cod_prod: “0004”, description: “Disco Duro”, price: 100, […]