小编sum*_*dhe的帖子

如何使用 struct 使用 mongo-go-driver 的更新功能

mongo-go-driver 的更新函数可以这样调用。

filter := bson.D{"username", username}
update := bson.D{{"$set",
    bson.D{
        {"name", person.Name},
    },
}}
result, err := collection.UpdateOne(ctx, filter, update)
Run Code Online (Sandbox Code Playgroud)
type Person struct {
    ID       primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
    Username string             `json:"username,omitempty" bson:"username,omitempty"`
    Name     string             `json:"name,omitempty" bson:"name,omitempty"`
}
Run Code Online (Sandbox Code Playgroud)

但是,我需要使用person结构调用更新函数,而没有像这样提及 person 结构的每个字段。

filter := bson.D{"username", username}
update := bson.D{{"$set", <<how to convert person struct to bson document?>>}}
result, err := collection.UpdateOne(ctx, filter, update)
Run Code Online (Sandbox Code Playgroud)

如何将 person 结构转换为 bson 文档?

crud driver go mongodb

10
推荐指数
3
解决办法
3678
查看次数

ReactJS中如何触发AsyncSelect重新加载选项

我有两个 AsyncSelect 组件来选择一个类别和一个子类别。当我们从第一个 AsyncSelect 中选择一个类别时,我需要将其子类别加载到第二个 AsyncSelect 中。

AsyncSelect 在安装时加载项目。但是,当数据已经安装时,如何以编程方式触发它(当我从第一个 AsyncSelect 中选择类别时)来加载数据(第二个 AsyncSelect 的子类别)?

 <AsyncSelect
    cacheOptions
    loadOptions={this.loadSubCategories}
    defaultOptions
    onInputChange={this.handleInputChange}
 />
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

如果 EDT 是一个单独的线程,为什么在这个例子中 invokeLater 等待主线程完成?

所以如果 Event Dispatch Thread 是一个独立于主线程的线程,那让我觉得下一个代码会输出

Before
Runnable
true
After
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,就好像 EDT 在运行invokeLater(..)方法内的代码块之前等待主线程完成。输出是:

Before
After
Runnable
true
Run Code Online (Sandbox Code Playgroud)

编码:

Before
Runnable
true
After
Run Code Online (Sandbox Code Playgroud)

但是,如果我替换invokeLater(..)invokeAndWait(..),那么我得到

Before
Runnable
true
After
Run Code Online (Sandbox Code Playgroud)

这让我觉得 EDT 并不是一个真正的独立线程,或者至少在这个例子中它的行为或只是在我看来不是。你怎么解释这个?

java swing multithreading invokelater event-dispatch-thread

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