标签: mongo-java

类型重命名后如何使用 Spring Data MongoDB 类型信息更新现有文档?

我正在将 mongodb 与 spring 一起使用,并且我有一些从一个基类派生的子文档,mongo 使用“_class”属性来找出要转换为的正确类型,但现在我更改了包名称,集合仍然有旧包名称的文档,我如何告诉 mongo 进行哪些自定义转换?

mongodb mongo-java spring-data-mongodb

3
推荐指数
1
解决办法
1570
查看次数

玩!2框架 - 添加Java Mongo驱动程序

我试图在Play!中使用java mongo驱动程序.

所以我读了:

http://www.playframework.org/documentation/2.0.2/SBTDependencies

http://www.mongodb.org/display/DOCS/Java+Tutorial

我在eclipse中添加了buildpath.但玩不能找到依赖.

所以在playframework主页上有一个例子,但我仍然无法弄明白.

val appDependencies = Seq(

      "org.scala-tools" %% "scala-stm" % "0.3",
      "org.apache.derby" % "derby" % "10.4.1.3" % "test"

    ) 
Run Code Online (Sandbox Code Playgroud)

为什么两个%的迹象?我如何获得正确的名字?我只知道版本应该是2.8.0.因此,如果我想添加Java驱动程序,我该怎么办?

如果我使用官方的java驱动程序,我不必使用Morphia吧?

安装play框架mongodb morphia模块

.

.

编辑:

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

    val appName         = "website"
    val appVersion      = "1.0-SNAPSHOT"

    val appDependencies = Seq(
        "org.mongodb" % "mongo-java-driver" % "2.8.0"
        //"com.mongodb" % "Mongo" %"2.8.0"

    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
      // Add your own project settings here …
Run Code Online (Sandbox Code Playgroud)

java dependencies mongodb playframework mongo-java

2
推荐指数
1
解决办法
7601
查看次数

违反 MongoDB 的 java 驱动程序中的唯一索引约束会产生什么影响?

我需要确保插入发生,如果失败,系统应该抛出错误。

我是否需要自己检查插入是否发生,或者如果无法插入,Java 驱动程序会抛出错误吗?

mongodb mongo-java

2
推荐指数
1
解决办法
2683
查看次数

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

我正在使用Java MongoDB驱动程序3.3版使用Mongo Aggregation Framework。我有一个聚集管道,这只是类型的集合List<Bson>。我试图找到一种方法来漂亮地打印管道的每个阶段。

toString在每个元素上调用方法是不够的,因为每个阶段都是Bson接口的简单实现的实例,即SimplePipelineStage。这个愚蠢的类没有任何toString方法的覆盖。

使用mongo java驱动程序Aggregates类的工厂方法创建管道,如下所示:

Aggregates.match(/* ... */)
Aggregates.project(/* ... */)
// And so on...
Run Code Online (Sandbox Code Playgroud)

Javadoc可以在这里找到。

我如何漂亮地打印此类对象?我肯定知道类型BasicDbObject具有智能toString实现,但是我找不到找到从转换Bson为的方法BasicDbObject

非常感谢。

java mongodb bson mongo-java mongo-java-driver

2
推荐指数
1
解决办法
2406
查看次数

Java - 使用 MongoDB 集合批量写入插入/更新

我对 MongoDB 很陌生。尝试了解在 MongoDB 中执行批量写入的最佳选项。我想定期刷新我的应用程序集合。文档的键是 AppID、AppName 和 AppStatus。以下是我想在每次运行中执行的操作 -

  1. 在应用程序集合中找到AppID。
  2. 如果不存在则执行插入
  3. 如果存在,则仅更新 AppStatus 键的值。
List<Application> applist = getAppList(); // List contains All the Application

private final MongoClient mongoClient;

private final MongoTemplate mongoTemplate;

MongoCollection<Document> collection =
                  mongoTemplate.getDb().getCollection("Application");
collection.bulkWrite (????);
Run Code Online (Sandbox Code Playgroud)

如何循环 appList 并执行批量插入/更新?

mongodb mongo-java spring-data-mongodb mongo-java-driver

2
推荐指数
1
解决办法
2389
查看次数

为什么我不能在Servlet中初始化Mongo

我正在制作java web项目,并尝试使用mongodb.但我发现了一个问题,

Mongo mongo = new Mongo("localhost", 27017)
Run Code Online (Sandbox Code Playgroud)

当我在main方法中使用它时,它没问题.但是当我在Servlet init()或doGet中使用它时,doPost会抛出异常,它就像:

    Allocate exception for servlet RegServlet
java.lang.ClassNotFoundException: com.mongodb.MongoException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    at java.lang.Class.getConstructor0(Class.java:2699)
    at java.lang.Class.newInstance0(Class.java:326)
    at java.lang.Class.newInstance(Class.java:308)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1116)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
2011-5-19 20:44:39 org.apache.catalina.startup.HostConfig checkResources
Run Code Online (Sandbox Code Playgroud)

java servlets mongodb mongo-java

1
推荐指数
1
解决办法
3066
查看次数

Mongodb java Query Builder

我是java的新手.如何在java中构建这个mongo查询.任何帮助/提示将不胜感激.

db.places.find({loc : { $near :[ -122.934326171875,37.795268017578] , $maxDistance : 50 } ,$or:[{"uid":"at"},{"myList.$id" :ObjectId("4fdeaeeede2d298262bb80") } ] ,"searchTag" : { $regex : "Union", $options: "i"} } );
Run Code Online (Sandbox Code Playgroud)

java query-builder mongodb mongo-java

1
推荐指数
1
解决办法
7865
查看次数

在MongoDB中,如何搜索子文档数组?

我在mongodb有一份调查文件,每项调查都有surveyRefId独特的鉴定.我无法理解如何在surveyRefid = 377或360的文档中查找具有questionType = hard的子文档.

这是一个示例文档:

{
  "json": {
    "surveyRefId": 377,
    "surveyName": "survey on sociology",
    "questionsVoList": [
      {
        "questionId": "556708425215763c64b8af3d",
        "questionText": "question no 1",
        "questionTitle": "",
        "questionType": "hard",
        "preQuestion": true,
        "questionOptions": [
          {
            "questionRefId": 0,
            "optionType": "RADIOBUTTON",
            "isanswer": true,
            "optionText": "ch1"
          }
        ]
      },
      {
        "questionId": "556708425215763c64b8af3d",
        "questionText": "question no 2",
        "questionTitle": "",
        "questionType": "simple",
        "question": true,
        "questionOptions": [
          {
            "questionRefId": 0,
            "optionType": "RADIOBUTTON",
            "isanswer": true,
            "optionText": "ch1"
          }
        ],
      },
      {
       "questionId": "556708425215763c64b8af3d", …
Run Code Online (Sandbox Code Playgroud)

java mongodb mongo-java

1
推荐指数
1
解决办法
1248
查看次数

Mongo数据库,SELECT*WHERE id = 3 AND id = 4

我有一个MongoDB,我希望获得两条记录或更多记录并将其放入地图中.如果我只有一个代码,则下面的代码可以正常query.put(ïd", "7");工作,但如果我在下面的代码中添加两个或更多代码,则代码不起作用.

    Map<Object,Object> map= new HashMap<Object,Object>();
    DBCollection collection = database.getCollection("Members");
    BasicDBObject query = new BasicDBObject();
    query.put("id", "7");
    query.put("id", "3");
    DBCursor cursor = collection.find(query);
    DBObject one;
    while(cursor.hasNext()) {
        one = cursor.next();
        map.put(one.get("id"),one.get("name"));
    }
Run Code Online (Sandbox Code Playgroud)

如何在地图上获得两条或更多条记录?对于SQL,等价物将是SELCT * FROM Member WHERE id = 7 AND id = 3

更完美的是,如果我可以将列表作为查询,不确定这是否可行.

java mongodb mongo-java

0
推荐指数
1
解决办法
1948
查看次数