小编svs*_*eja的帖子

如何在Mongo中查找所有字段的数据类型

我有一个文档

{_id:NumberLong(1),gender:"M",vip:false}.
Run Code Online (Sandbox Code Playgroud)

如何使用查询在 Mongo 中提取单个字段的类型.. 如何使用 typeof 运算符:

https://docs.mongodb.org/manual/core/shell-types/

mongodb mongodb-java mongodb-query

9
推荐指数
2
解决办法
7406
查看次数

是否可以在Aggregation Frameworks mongo中按投影顺序获取字段

我有以下文件:

{ "_id" : 3, "quizzes" : [ 4, 5, 5 ], "labs" : [ 6, 5 ], "final" : 78, "midterm" : 70 }
{ "_id" : 1, "quizzes" : [ 4, 5, 5 ], "labs" : [ 6, 5 ], "midterm" : 70 }
Run Code Online (Sandbox Code Playgroud)

如果我运行以下查询:

   db.students.aggregate([  { "$project": {  "midterm": 1,"final": 1   } } ])
Run Code Online (Sandbox Code Playgroud)

结果如下:

{ "_id" : 3, "final" : 78, "midterm" : 70 }
{ "_id" : 1, "midterm" : 70 }
Run Code Online (Sandbox Code Playgroud)

如果我仍然在shell中更改投影中的顺序,则字段的顺序是相同的?我们可以根据查询的顺序重新获得订单吗?

db.students.aggregate([  { …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

8
推荐指数
2
解决办法
6736
查看次数

RouteSpecificPool timeout使用NIO时处理HTTP请求

我们有一个应用程序,我们正在进行异步请求以获取Servlet响应.为了使异步请求,我们正在使用apache nio

https://hc.apache.org/httpcomponents-core-ga/tutorial/html/nio.html

我收到这个错误.这个错误并不总是发生,我无法弄清楚这是什么时候发生的.

最初我认为问题是游泳池和游泳池大小增加.但有时候,如果仅发送单个请求,则会发生,尽管池大小为1000.

下面显示的错误可能是什么原因:

java.net.ConnectException: null
        at org.apache.http.nio.pool.RouteSpecificPool.timeout(RouteSpecificPool.java:170) [httpcore-nio-4.4.4.jar:4.4.4]
        at org.apache.http.nio.pool.AbstractNIOConnPool.requestTimeout(AbstractNIOConnPool.java:560) [httpcore-nio-4.4.4.jar:4.4.4]
        at org.apache.http.nio.pool.AbstractNIOConnPool$InternalSessionRequestCallback.timeout(AbstractNIOConnPool.java:821) [httpcore-nio-4.4.4.jar:4.4.4]
        at org.apache.http.impl.nio.reactor.SessionRequestImpl.timeout(SessionRequestImpl.java:182) [httpcore-nio-4.4.4.jar:4.4.4]
        at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processTimeouts(DefaultConnectingIOReactor.java:212) [httpcore-nio-4.4.4.jar:4.4.4]
        at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:157) [httpcore-nio-4.4.4.jar:4.4.4]
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:350) [httpcore-nio-4.4.4.jar:4.4.4]
        at com.sampleApp.test.nio.NotifierReactor$2.run(NotifierReactor.java:93) [classes/:na]
Run Code Online (Sandbox Code Playgroud)

apache asynchronous nio http nonblocking

8
推荐指数
0
解决办法
1310
查看次数

Apache ConnectionClosedException:连接已关闭,HttpAsyncRequestExecutor.endOfInput(HttpAsyncRequestExecutor.java:344)

我们在同一个tomcat服务器上部署了三个应用程序A,B和C.在A到B之间发生了一个HTTP调用(REST CALL)和从B到C的另一个http调用(REST CALL)

我们最初使用同步HTTP调用,最近我们将代码更改为异步调用.我们使用HttpAsyncClients(应用程序A调用应用程序B)和(应用程序B调用应用程序C).

我们得到间歇性的org.apache.http.ConnectionClosedException:有时我们在应用程序A的日志(Async Client到B)和应用程序B中的某个时间(异步客户端到C)中获得此异常

 CloseableHttpAsyncClient  client = HttpAsyncClients.custom()
                    .setMaxConnPerRoute(100))
                    .setMaxConnTotal(config.getInt(150)).build();
Run Code Online (Sandbox Code Playgroud)

并且对于我们给予超时的每个请求

final RequestConfig params = RequestConfig.custom().setConnectTimeout(300000) // 5min
                    .setSocketTimeout(300000).setConnectionRequestTimeout(300000).build();
Run Code Online (Sandbox Code Playgroud)

请在下面找到堆栈跟踪:

   org.apache.http.ConnectionClosedException: Connection closed
        at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.endOfInput(HttpAsyncRequestExecutor.java:344) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:261) [httpcore-nio-4.4.5.jar:na]
        at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) [httpasyncclient-4.1.2.jar:na]
        at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) [httpasyncclient-4.1.2.jar:na]
        at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) [httpcore-nio-4.4.5.jar:4.4.5]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
Run Code Online (Sandbox Code Playgroud)

请注意这个问题不是重复的 间歇性ConnectionClosedException与httpasynclient stacj跟踪是完全不同的.事件这个问题发生间歇性.

apache apache-httpcomponents apache-httpasyncclient

8
推荐指数
0
解决办法
3849
查看次数

您如何使用机器人框架并行运行测试?并行库的问题

以下是parallel_tests.txt中的代码

*** Settings ***
Library         Parallel  

*** Test Cases ***
Runner
    Run Parallel Tests  Hello   World

Hello
    [Tags]  parallel
    Log     Hello123 

World
    [Tags]  parallel
    Log     World123
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 jybot 从终端执行此测试用例文件,如下所示: jybot parallel_tests.txt;

我收到以下错误:找不到名称为“运行并行测试”的关键字。

如何使用并行库在机器人框架中并行执行测试用例 Hello 和 World。

robotframework

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

带有 $in 和 upsert 的 MongoDB UpdateMany

名为 people1 的 Mongo 集合包含以下数据:

db.persons1.find().pretty();


{ "_id" : "Sims",    "count" : 32 }
{ "_id" : "Autumn",  "count" : 35 }
{ "_id" : "Becker",  "count" : 35 }
{ "_id" : "Cecile",  "count" : 40 }
{ "_id" : "Poole",   "count" : 32 }
{ "_id" : "Nanette", "count" : 31 }
Run Code Online (Sandbox Code Playgroud)

现在通过 Java 我编写了代码来增加列表中用户的计数

MongoClient mongoclient = new MongoClient("localhost", 27017);
MongoDatabase db = mongoclient.getDatabase("testdb1");
MongoCollection<Document> collection = db.getCollection("persons1");
List li = new ArrayList();
li.add("Sims");
li.add("Autumn");

collection.updateMany(
    in("_id",li), …
Run Code Online (Sandbox Code Playgroud)

java mongodb mongodb-java mongodb-query

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

在 MongoDB java 中批量写入时处理异常 ordered as false

我正在使用 Mongo DB java 驱动程序:

collection.bulkWrite(documents);
Run Code Online (Sandbox Code Playgroud)

我有 100 万条记录要插入。如果其中一条记录的插入失败,则在第一次失败时,剩余的记录将不会被插入。为了避免这种情况,我发现有BulkWriteOptionswith orderedas false;

collection.bulkWrite(documents, new BulkWriteOptions().ordered(false) )
Run Code Online (Sandbox Code Playgroud)

如果上述操作过程中出现异常,我们能否获取失败的记录列表bulkwrite,并再次尝试插入这些记录?

mongodb mongodb-java mongodb-query

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

如何从 jacoco.exec 生成 HTML 报告?

我们有一个包含子模块的 Maven 项目。有一个父 pom.xml 并且每个子项目都被制作成一个 war 文件。每个子模块都有单元测试用例和从 Jacoco 生成的报告。

现有报告显示单个模块的单元测试覆盖率,但我们需要在 Tomcat 上提供集成测试范围的代码覆盖率。我们所做的是在 Tomcat 文件夹中安装 jacoco 代理并将其配置为生成 jacoco.exec。当我使用 EclEmma 插件导入 jacoco.exec 时,我们会看到代码覆盖率。

有没有办法在没有源代码的情况下从独立的 jacoco.exec 生成报告?

eclipse jacoco jacoco-maven-plugin

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

$添加一些字段作为Null返回和值为Null

这些是我收藏的文件

{ "_id" : 1, "quizzes" : [ 10, 6, 7 ], "labs" : [ 5, 8 ], "final" : 80, "midterm" : 75 ,"extraMarks":10}
{ "_id" : 2, "quizzes" : [ 9, 10 ], "labs" : [ 8, 8 ], "final" : 95, "midterm" : 80 }
{ "_id" : 3, "quizzes" : [ 4, 5, 5 ], "labs" : [ 6, 5 ], "final" : 78, "midterm" : 70 }
Run Code Online (Sandbox Code Playgroud)

只有文档1有一个字段额外标记:

现在我必须作为"最终"+"中期"+"额外标记"的总和进行投影

我写了一个投影查询如下:

db.students.aggregate([    {      $project: {          examTotal: …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

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