标签: mongo-java

是否有一个在mongo中运行的Web服务器?

当我启动配置服务器时,我可以在记录器中看到以下行:

[websvr] admin web console waiting for connections on port 27017
Run Code Online (Sandbox Code Playgroud)

所以,我想知道mongo是否使用Web服务器来维护配置数据?

mongoose mongodb mongoid mongo-java

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

Mongo Java:如何在文件中将DBObject序列化为JSON?

我有一个文档中MongoDB

name: name
date_created: date
p_vars: {
   01: {
      a: a,
      b: b,
   }
   02: {
      a: a,
      b: b,
   }
   ....
}
Run Code Online (Sandbox Code Playgroud)

表示为 DBObject

  • 所有key,value对都是类型String
  • 我想用Java序列化这个文档,看看api,我没找到任何东西,我如何序列化DBObjectas as JSONfile?

java json mongodb mongo-java

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

MongoDB Java:使用QueryBuilder $ in运算符在Mongo中查找对象不返回任何内容

我有一个JUnit rule称为MongoRule样子

public class MongoRule extends ExternalResource {

    private static final Logger LOGGER = LoggerFactory.getLogger(MongoRule.class);
    private final MongoService mongoService;

    public MongoRule() throws UnknownHostException {
        mongoService = new MongoService(getConfiguredHost(), getConfiguredPort(), getConfiguredDatabase());
    }

    @Override
    protected void before() throws Throwable {
        LOGGER.info(" Setting up Mongo Database - " + getConfiguredDatabase());
    }

    @Override
    protected void after() {
        LOGGER.info("Shutting down the Mongo Database - " + getConfiguredDatabase());
        mongoService.getMongo().dropDatabase(getConfiguredDatabase());
    }

    @Nonnull
    public DB getDatabase() {
        return mongoService.getMongo().getDB(getConfiguredDatabase());
    }

    @Nonnull
    public Mongo getMongo() …
Run Code Online (Sandbox Code Playgroud)

java mongodb mongo-java

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

$sort 是否适用于子数组文档

我有一个集合,其中有一个数组类型的字段。我想根据子数组的字段进行排序,但 Mongo 没有对数据进行排序。

我的收藏是:

{
  "_id" : ObjectId("51f1fcc08188d3117c6da351"),
  "cust_id" : "abc123",
  "ord_date" : ISODate("2012-10-03T18:30:00Z"),
  "status" : "A",
  "price" : 25,
  "items" : [{
      "sku" : "ggg",
      "qty" : 7,
      "price" : 2.5
    }, {
      "sku" : "ppp",
      "qty" : 5,
      "price" : 2.5
    }]
}
Run Code Online (Sandbox Code Playgroud)

我的查询是:

db.orders.aggregate([
  { "$unwind" : "$items"} , 
  { "$match" : { }} , 
  { "$group" : { "items" : { "$addToSet" : { "sku" : "$items.sku"}} , "_id" : { }}} , 
  { "$sort" : …
Run Code Online (Sandbox Code Playgroud)

mongodb mongo-java

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

MongoDB查询多个字段

我在mongodb中存储了一些数字.例如

  • NUM1:5
  • NUM2:10
  • NUM1:11
  • NUM2:15

我想查找文件,例如,如果我传递'7',查询应检查7是否位于num1和num2之间,并且必须返回此文档.

我试过了

BasicDBObject query = new BasicDBObject("num1", new BasicDBObject("gte", 7).append("num2",new BasicDBObject("lte", 7)));
Run Code Online (Sandbox Code Playgroud)

List<BasicDBObject> obj = new ArrayList<BasicDBObject>();
        obj.add(new BasicDBObject("num1", new BasicDBObject("gte", 7)));
        obj.add(new BasicDBObject("num2", new BasicDBObject("lte", 7)));
        query.put("$and", obj);
Run Code Online (Sandbox Code Playgroud)

两个都没有给我任何结果.你能否告诉我正确的查询目的?

mongodb mongodb-query mongo-java

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

$ geoWithin和$ geoIntersects运算符的区别?

mongoDB $geoWithin$geoIntersects运营商有什么区别?

如果我找坐标(使用默认坐标参照系),$geoWithin以及$geoIntersects将返回相同的结果.

如果我错了,请纠正我.

任何简单的用例来理解差异将不胜感激.

geospatial mongodb mongo-java

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

MongoDB Atlas:不允许用户对 system.indexes 进行操作查找

我正在使用 MongoDB Atlas,最近我开始在我的 MongoDB 副本上收到此错误:

不允许用户对 [mydb.system.indexes] 执行操作 [find]

什么都没有真正改变,所以我想知道可能是什么问题。用户在文档中拥有readWrite角色,看起来它应该有权这样做。另外,我尝试将用户更改为具有任何权限的管理员用户,但仍然出现此错误。有趣的是,集合不存在于但 Spring Data 尝试查询它并收到此错误。mydbsystemmydb

这是来自 mongo 的完整日志:

Error: error: {
    "ok" : 0,
    "errmsg" : "user is not allowed to do action [find] on [mydb.system.indexes]",
    "code" : 8000,
    "codeName" : "AtlasError"
}
Run Code Online (Sandbox Code Playgroud)

MongoDB 连接 URI 如下所示:

spring.data.mongodb.uri=mongodb+srv://[USER]:[PASSWORD]@[MONGO_URL].mongodb.net/mydb
Run Code Online (Sandbox Code Playgroud)

我正在将 Spring Boot2.0.1.RELEASE与版本的 mongo java 驱动程序一起使用3.6.3。Mongo 副本的版本是3.4.14. 知道发生了什么以及如何解决这个问题吗?升级用户角色在这里没有帮助。

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

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

MongoDB Java驱动程序 - 在查询查询中使用存在投影

我想获得不存在字段下载的所有文档

find{ "download" : {$exists: false}}
Run Code Online (Sandbox Code Playgroud)

对于Java,我找到了一个例子:

  BasicDBObject neQuery = new BasicDBObject();
  neQuery.put("number", new BasicDBObject("$ne", 4));
  DBCursor cursor = collection.find(neQuery);

  while(cursor.hasNext()) {
    System.out.println(cursor.next());
  }
Run Code Online (Sandbox Code Playgroud)

我的改编是

      BasicDBObject field = new BasicDBObject();
      field.put("entities.media", 1);
  field.put("download", new BasicDBObject("$exists",false));
  System.out.println("Start Find");
  DBCursor  cursor = collection.find(query,field);      
      System.out.println("End Find Start Loop ALL 100k");
   int i = 1;
                while(cursor.hasNext())
Run Code Online (Sandbox Code Playgroud)

存在线不起作用:

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: com.mongodb.MongoException: Unsupported projection option: $exists
        at com.mongodb.MongoException.parse(MongoException.java:82)
        at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:314) …
Run Code Online (Sandbox Code Playgroud)

java mongodb bson mongo-java

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

$ elemMatch在MongoDB Aggregation Framework中的$ unwind之后不起作用

我收集了以下数据:

{
  "_id" : ObjectId("51f1fcc08188d3117c6da351"),
  "cust_id" : "abc123",
  "ord_date" : ISODate("2012-10-03T18:30:00Z"),
  "status" : "A",
  "price" : 25,
  "items" : [{
      "sku" : "ggg",
      "qty" : 7,
      "price" : 2.5
    }, {
      "sku" : "ppp",
      "qty" : 5,
      "price" : 2.5
    }]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用查询:

cmd { "aggregate" : "orders" , "pipeline" : [ 
    { "$unwind" : "$items"} , 
    { "$match" : { "items" : { "$elemMatch" : { "qty" : { "$in" : [ 7]}}}}} , 
    { "$group" : { "price" …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework mongo-java

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

Mongo连接池(更改连接池的大小)

如何更改mongo连接池大小?

我看到默认是100。有没有办法改变这个值?

我不想通过 spring 来做,有没有办法通过 MongoClient 配置它?

我看到有一个关于 mongoClientOptions 的选项,但我没有看到设置连接池的选项

java spring mongodb spring-mongo mongo-java

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