小编Yur*_*ura的帖子

高朗。MongoDB bulkWrite() 更新文档切片

我有一部分对象要保存到 Mongo 集合中。让我们说

type (
    User struct {
        AccountId       string
        Name            string
        FamilyName      string
        EmailAddress    string
    }
)

func persistUsers(ctx context.Context, db *mongo.Collection, users []User) {

}
Run Code Online (Sandbox Code Playgroud)

有些用户已经被保存,有些则没有。我想向上插入切片。因此我有两个问题:

  1. 我怎样才能使用mongo.Collection.BulkWrite()?我找不到如何将对象切片放入其中的明显解释。

  2. mongo 如何决定什么是新的,什么是旧的,必须更新?根据_id?

go mongodb

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

TableColumn 中的 Lambda 运算符:: setOnEditCommit()

我在我的代码中使用 TableView。我想让单元格可编辑。我在Oracle 站点上找到了运行良好的示例

lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
lastNameCol.setOnEditCommit(
    new EventHandler<CellEditEvent<Person, String>>() {
       @Override
       public void handle(CellEditEvent<Person, String> t) {
            ((Person) t.getTableView().getItems().get(
                t.getTablePosition().getRow())
                ).setLastName(t.getNewValue());
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

然后我决定使用 lambda 运算符而不是匿名类。

lastNameCol.setCellFactory(TextFieldTableCell.<Person>forTableColumn());
lastNameCol.setOnEditCommit(
    (CellEditEvent<Person, String> t) -> {
            ((Person) t.getTableView().getItems().get(
                    t.getTablePosition().getRow())
                    ).setLastName(t.getNewValue());
    });
Run Code Online (Sandbox Code Playgroud)

我收到编译器错误。

不兼容的类型:lambda 表达式中不兼容的参数类型

但是我也在Oracle 站点上找到了这个示例。

也许这个问题是众所周知的,但我没有找到解决方案。为什么这段代码是错误的?

java lambda javafx

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

C++:如何将 unique_ptr 推送到 deque?

在我的项目中,我需要包含指向数据单元实例的智能指针的容器。我写的类(简单的例子):

template <typename T>
class Queue
{
public:

    void push(const T & param) 
    {
        m_deque.push_front(param);
    }

private:
    std::deque<T> m_deque;
};
Run Code Online (Sandbox Code Playgroud)

比我想推一个:

int main()
{

    Queue< std::unique_ptr<DataBox> > queue;

    std::unique_ptr<DataBox> d1(new DataBox(11));

    queue.push(d1);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

而 VS2017 编译器说我不能这样做:

Error C2280 std::unique_ptr<DataBox,std::default_delete<_Ty>>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': attempting to reference a deleted function

据我了解,错误的原因是尝试制作 unique_ptr 的副本。但是,如果我将签名更改为:

void push(T && param) {...}

和函数调用

queue.push( std::move(d1) );

我又犯了这个错误。所以问题是 - 我应该如何实现push()将移动unique_ptr到队列?

c++ unique-ptr move-semantics

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

如何触发Kafka重新平衡?

我需要针对 kafka 重新平衡测试我的 golang 服务。我怎样才能手动触发它?

我在 Docker 本地运行 kafka。我有一个经纪人。有什么办法强制卡夫卡这样做吗?

apache-kafka

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

在主机上创建具有本地存储的 mongo docker 容器

我想在 docker 容器中运行 mongo db。我已经提取了图像并运行它。所以看起来工作正常。

但每次我启动它时,数据库都会被覆盖,因此我会丢失任何更改。所以我想以某种方式将内部容器存储映射到我的本地主机文件夹上。

我应该编写 Dockerfile 或/和 docker-compose.yaml 吗?我想这是一个简单的问题,但作为 Docker 新手,我不明白该读什么才能充分理解。

mongodb docker

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

为TableView转换ArrayList <>到ObservableList <>

所有!

当我在Java上设计我的项目时遇到了以下主要问题:

我需要编写的程序是允许用户输入一些数据然后以特定格式保存的接口.在项目中我存储数据ArrayList<>.

public class CQuestionnaire
{

    // fields
    private final List<CQuestStage> m_lstStages;
    …
} 
Run Code Online (Sandbox Code Playgroud)

用户界面基于TableView.所以我需要ObservableList<>连接数据和TableView.我认为直接链接TableView列表是一个很好的决定CQuestionnaire.所以我getObservableList()为此目的实施:

public class CQuestionnaire
{
    // fields
    private final List<CQuestStage> m_lstStages;

    public ObservableList<CQuestStage> getObservableList()
    {
        return FXCollections.observableArrayList(m_lstStages);
    }
    …
} 
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为FXCollections.observableArrayList()列表的返回副本和所有用户的操作不会更改CQuestionnaire成员.

现在的问题是:有没有什么办法如何链接TableViewArrayList<>不改变其类型ObservableList<>(离开单独的数据和视图),并不会产生明显的列表所必需的TableView唯一?

当然我已经阅读了这个主题(JavaFX,Casting ArrayList to ObservableList).但问题是FXCollections.observableArrayList()副本列表中的源列表CQuestionnaire和之间没有链接TableView.

java javafx arraylist

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