小编She*_*lef的帖子

多个集合上的 MongoDB 聚合

我需要创建在具有相似结构的多个集合上运行的聚合。我知道$lookup aggregation,但实际上我不想在文档之间加入,而是列出所有集合中的所有文档。为了更好地阐明我的意图,我将使用一个例子。

学生作品集:

{
     "_id" : ObjectId("57278a449fb5ba91248b3bc0"),
     "age": 22
}
Run Code Online (Sandbox Code Playgroud)

教师作品集:

{
     "_id" : ObjectId("57278a449fb5ba91248b3bc0"),
     "age": 28
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个聚合,该聚合将给出两个集合的平均年龄。如何在不使用两个聚合的情况下将结果与我的代码结合起来?

mongodb aggregation-framework

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

在 Java 中使用外部 IP 地址建立连接

我正在尝试构建一个聊天程序。我编写了代码,一切正常,当我使用我的计算机并使用 127.0.0.1 连接时,它仍然运行良好。我还成功地在我的笔记本电脑和我的电脑之间成功连接,它们在同一台路由器上运行。(我使用内部 IP 地址来执行此操作,10.0.0.3)。

现在我正在尝试在我的路由器和其他路由器之间建立连接。为此,我正在尝试连接到外部 IP 地址。我通过我的路由器完成端口转发部分,我还制作了一个静态 IP。当我运行代码时,我总是收到“连接被拒绝错误”。

这是代码:

主服务器.java:

import java.util.*;
import java.io.*;
import java.net.*;

public class MainServer {
  private ArrayList<Socket> sockets;
  public MainServer() {
    ServerSocket server_socket;
    try {
      server_socket = new ServerSocket(5005);
      sockets = new ArrayList<Socket>();
      System.out.println("server is now running");
      while(true) {
        Socket socket = server_socket.accept();
        sockets.add(socket);
        try {
          PrintWriter writer = new PrintWriter(socket.getOutputStream());
          writer.println("---you are connected to the server---\r\n");
          writer.flush();
        } catch(Exception e) {e.printStackTrace();}
        System.out.println("server connected to " + socket.getInetAddress());
        Reader reader = new Reader(socket);
        Thread …
Run Code Online (Sandbox Code Playgroud)

java sockets connection port

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

使用 html5 拖放时无法使用鼠标滚轮滚动页面

使用html5拖放功能时,似乎无法使用鼠标滚轮滚动页面。我在任何 html5 拖放现场演示中都看到过这个问题。有什么解决方法可以解决这个问题吗?

html javascript drag-and-drop

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

java中的继承是否继承变量?

据我所知,继承的类也应该继承变量,那么为什么这段代码不起作用呢?

public class a {
    private int num;

    public static void main(String[] args) {
        b d = new b();
    }
}

class b extends a {
    public b() {
        num = 5;
        System.out.println(num);
    }
}
Run Code Online (Sandbox Code Playgroud)

java variables inheritance extends

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

对于同时增长的列表中的每个循环

我在java中有一个for-each循环.

for-each myList在一个线程中运行.myList可以同时成长.我有一些问题:

  1. 如果我启动了for-each循环并且在它启动之后,一个项目被添加到列表中,for-each循环中的动作是否会在它上面运行?
  2. 假设上述问题的答案是否定的.我有点问题.for-each循环处于while(true)循环中,因此它将重新开始.我希望for-each循环在每个项目上运行一次.我无法在for-each循环中删除项目,因为我得到了ConcurrentModificationException.所以我的解决方案是在for-each循环结束后删除所有列表项.但是,这样一来,如果在for-each循环启动后添加到列表中的项目也被删除了,则for-each循环将永远不会在此项目上运行.

我的目标是在一个可以同时增长的列表上运行for-each.我希望for-each循环永远不会错过任何项目,并且永远不会在同一项目上运行两次或更多次.解决办法是什么?

java multithreading list arraylist

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