问题标签 [mongodb-java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3760 浏览

java - 在MongoDB中添加多个子文档

我正在开发一个客户数据加载器,客户可以有多个地址。如果找不到客户,我创建它并添加地址。如果客户存在,我只需添加新地址,如下所示:

这适用于新客户。问题是当客户已经存在时,新地址会覆盖现有地址。

如何将新地址添加给客户,以便保留多个地址?

根据我的发现,我应该能够通过外壳“推送”来完成此操作。但我不认为“推”是 BasicDBObject 上的方法。

0 投票
1 回答
695 浏览

java - Java JAR 不包含正确的依赖项

我正在尝试创建我的 java 项目的 uberjar,其中包含包的依赖mongodb-java-driver项。com.mongodb.*

目前我已经尝试使用 leiningen 版本2.0.0-preview41.7.1,和 mongodb-java-driver 版本2.7.3。我的 project.clj 依赖项如下所示:

运行命令时,lein clean && lein uberjar我看到以下输出:

执行 uberjar 后,我收到以下错误:

显然,以前版本的 leiningen 在运行时删除 .class 文件时存在问题,我相信我没有使用受此问题影响的版本。

如何创建包含 com.mongodb.* 依赖项的 uberjar?

0 投票
3 回答
2063 浏览

mongodb - 等效于 JavaScript shell 的 Object.bsonsize( doc ) 的 Java 驱动程序?

我想知道 Java 驱动程序等效于 Mongo JavaScript shell 的 Object.bsonsize( doc ) 方法是什么?例如,执行以下操作的 Java 代码是什么:

如何使用 MongoDB Java 驱动程序执行相同的基本用例。它通过 JavaDocs 并不明显。

0 投票
1 回答
2355 浏览

mongodb - MongoDB $push 运算符是添加嵌入式文档的方式吗?

我正在使用 MongoDB 和 Spring 3。我有以下域对象:

我想将 a 添加Post到 a User,但是最好/最有效的方法是什么?我可以看到一种以编程方式执行此操作的方法 - 找到用户,将新的帖子对象添加到列表中并再次保存用户 - 但我认为这不是非常优雅或高效。

从文档来看,我似乎需要使用$push运算符,但我似乎找不到任何关于如何使用 Spring 的 MongoTemplate 执行此操作的示例。谁能提供一个例子?

0 投票
0 回答
420 浏览

java - 不等待就无法创建多个mongodb集合

如果我使用此代码:

运行前 #1:数据库不存在 即使它存在,它也会使用 db.dropDatabase() 从控制台中删除

运行 #1 后:

  • 我只看到一个集合而不是两个集合
  • “UserProfile”集合被创建并且其中有一个对象
  • 未创建“公司”集合

运行#2之后:

  • 我现在看到了这两个系列
  • “UserProfile”现在有两个对象
  • "companies" 集合被创建并且其中有一个对象

我觉得很奇怪

所以我改变了我的 for 循环,包括等待 10 秒

我清理了我的数据库并运行了这段代码,每次它成功地创建了两个集合(需要时间......但可以完成工作)

我错过了什么吗?我应该等待的地方是否正在进行异步操作?

我知道一个更好的技巧是不要创建下一个集合......直到第一个集合的存在被确认

此代码不会一直运行...仅当我的应用程序第一次初始化时...它必须创建默认数据库并设置一堆集合

谢谢

注意:提问时如何插入换行符...

MongoDB 版本:2.0.6 windows 64 位(当前生产版本) Java 驱动程序:2.7.3

0 投票
1 回答
1347 浏览

mongodb - 为什么重新编译后第一次访问数据库时会出现套接字超时?

我正在使用 playframework 2.0,每次重新编译后,我的应用程序第一次尝试访问数据库时都会出现套接字超时。我直接使用 Mongo 驱动程序。这是一个典型的堆栈跟踪:

这是我的初始化代码:

我使用getDB类外部的方法来获取数据库。该方法旨在创建不存在的 mongo 单例。我总是得到验证成功 println,但是在第一次访问数据库时,我得到了套接字超时异常。

在我的 Global 类中,当应用程序关闭时,我关闭了与数据库的连接。

有任何想法吗?

0 投票
1 回答
381 浏览

mongodb - GridFS Java 对象是线程安全的吗?

我知道 Java com.mongodb.Mongo 对象是线程安全的,但是如果我使用从它返回的数据库来创建 GridFS 对象,那么 GridFS 对象也是线程安全的吗?

谢谢。

0 投票
1 回答
1235 浏览

mongodb - 如何使用 MongoDB Java 驱动程序按日期对 GridFS 文件进行排序?

GridFS API似乎.sort不像DBCursor对象有

有没有办法按uploadDate(或任何其他 GridFS 元数据字段)进行排序?

0 投票
1 回答
701 浏览

mongodb - Can I save space in my Mongodb indexes by converting ASCII strings to bytes?

I have a lot of object with language code as a key field. Since both Java and Mongodb use UTF-8 natively and since the language codes are ASCII it seems to be that they should take 1 byte per character plus the \0 terminator. So the language code "en" should take only 3 bytes in the BSON object and in the index.

Is this correct? I am wondering whether I save anything by converting my fields to a byte array like:

before saving them to Mongodb with the Java driver?

0 投票
2 回答
7054 浏览

mongodb-java - 在java中创建一个mongodb上限集合

我想从 Java 代码创建一个上限集合。我找到了通过 JavaScript 创建它的语法,但找不到 Java 的示例。