小编Kel*_*let的帖子

使用 mongo go driver 查找集合中的所有文档

我在这里查看了答案但这使用了旧的且未维护的 mgo。如何使用 mongo-go-driver 查找集合中的所有文档?

我尝试传递nil过滤器,但这不会返回任何文档,而是返回nil. 我还检查了文档,但没有看到任何关于返回所有文档的提及。这是我对上述结果的尝试。

client, err := mongo.Connect(context.TODO(), "mongodb://localhost:27017")
coll := client.Database("test").Collection("albums")
if err != nil { fmt.Println(err) }
// we can assume we're connected...right?
fmt.Println("connected to mongodb")

var results []*Album
findOptions := options.Find()
cursor, err := coll.Find(context.TODO(), nil, findOptions)
if err != nil {
   fmt.Println(err) // prints 'document is nil'
}
Run Code Online (Sandbox Code Playgroud)

另外,我对为什么需要指定findOptions何时调用Find()集合上的函数感到困惑(或者我不需要指定?)。

go mongodb mongo-go

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

使用CefSharp v65加载本地html / css / js文件

我正在尝试在WinForms中使用CefSharp v65加载本地html / css / js文件。

我发现了与此有关的其他堆栈溢出帖子,但没有一个使用新的内置版本FolderSchemeHandlerFactory,而是实现了自己的版本。这是我在Scheme Handler上阅读的文档:https : //github.com/cefsharp/CefSharp/wiki/General-Usage在“ Scheme Handler”标题下。

资料来源:在CefSharp中使用本地构建的网页

我尝试像这样使用新功能:

    public ChromiumWebBrowser browser;

    public void InitBrowser()
    {            
        var settings = new CefSettings();
        settings.RegisterScheme(new CefCustomScheme
        {
            SchemeName = "localfolder",
            SchemeHandlerFactory = new FolderSchemeHandlerFactory(
                rootFolder: @"..\..\..\..\CEFSharpExample\webpage",
                defaultPage: "index.html" // default
            )
        });

        Cef.Initialize(settings);

        string html = File.ReadAllText(@"..\..\..\webpage\index.html");
        browser = new ChromiumWebBrowser();
        browser.LoadHtml(html);
        this.Controls.Add(browser);
        browser.Dock = DockStyle.Fill;

    }
Run Code Online (Sandbox Code Playgroud)

但是,我只是得到没有CSS的html,调试器中没有例外。有谁知道如何利用新的内置功能?

c# cefsharp

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

从视频字节获取帧

我正在使用 ffmpeg 和 golang 从视频中提取一帧。如果我有一个以字节为单位的视频,而不是作为 .mp4 保存在磁盘上,我如何告诉 ffmpeg 从这些字节中读取而不必将文件写入磁盘,因为这要慢得多?

我从文件中读取了这个工作,但我不确定如何从字节中读取。

我在这里查看了ffmpeg文档但只看到了输出示例而不是输入示例。

func ExtractImage(fileBytes []byte){

    // command line args, path, and command
    command = "ffmpeg"
    frameExtractionTime := "0:00:05.000"
    vframes := "1"
    qv := "2"
    output := "/home/ubuntu/media/video-to-image/output-" + time.Now().Format(time.Kitchen) + ".jpg"

    // TODO: use fileBytes instead of videoPath
    // create the command
    cmd := exec.Command(command,
        "-ss", frameExtractionTime,
        "-i", videoPath,
        "-vframes", vframes,
        "-q:v", qv,
        output)

    // run the command and don't wait for it to finish. …
Run Code Online (Sandbox Code Playgroud)

ffmpeg go

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

如何在拦截器中安全地向 grpc ServerStream 添加值

我的 grpc 服务器有一个日志拦截器,并且想要向元数据添加一个值(我想在整个生命周期中跟踪请求):

func (m *middleware) loggingInterceptor(srv interface{},
    ss grpc.ServerStream,
    info *grpc.StreamServerInfo,
    handler grpc.StreamHandler) 

    md, ok := metadata.FromIncomingContext(ss.Context())
    if !ok {
        return errors.New("could not get metadata from incoming stream context")
    }

    // add the transaction id to the metadata so that business logic can track it
    md.Append("trans-id", "some-transaction-id")

    // call the handler func
    return handler(srv, ss)
}
Run Code Online (Sandbox Code Playgroud)

但文档指出FromIncomingContext

// FromIncomingContext returns the incoming metadata in ctx if it exists.  The
// returned MD should not be modified. Writing …
Run Code Online (Sandbox Code Playgroud)

go grpc grpc-go

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

外键违规是否应该是客户端错误?如果是,应该如何处理?

我正在尝试以一种务实的方式来处理与我的 Web 应用程序中的客户端输入相关的数据库错误。例如,如果我发现外键违规,我不认为应该是 500,因为用户提供了不正确的数据。我还想返回客户端请求中的哪个字段导致外键违规(另一种情况可能是唯一约束)。到目前为止,我提出的所有解决方案都会导致我的 db 包取决于net/http包或我自己的 http 处理程序包。

这是我的代码的一个简化示例:

// this implements an interface that's omitted for brevity
type ClientError struct {
    Code       int
    LogMessage string
    LogRequest *http.Request
    Body       interface{}
}

// this implements an interface that's omitted for brevity
type ServerError struct {
    LogType    string
    LogMessage string
    LogRequest *http.Request
}

// in my http handler package
func (h *ApiHandler) PostSomething(c *gin.Context) {
    // request parsing omitted for brevity

    // insert the review media metadata into the database. …
Run Code Online (Sandbox Code Playgroud)

go

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

为什么用户定义时间的位置为零

我正在使用 go 1.13 并且我有一个用户定义的 type 类型time.Time,并且在使用给定位置创建该值时UTC,该loc属性仍然是nilloc在某些时间函数中具有 nil会导致恐慌,因此这是不可接受的)。游乐场在这里

type CustomTime time.Time

func main() {
    t := CustomTime(time.Date(2020, time.July, 23, 1, 0, 0, 0, time.UTC))
    fmt.Printf("%+v",t) // prints {wall:0 ext:63731062800 loc:<nil>}
}
Run Code Online (Sandbox Code Playgroud)

仅供参考:背景信息,我正在使用此自定义时间Scan()为我的数据库处理程序实现,并且当我比较上面定义的自定义时间值(使用nil位置与数据库中的值(非nil位置)时,我的测试由于比较失败。任何帮助或正确方向的指示将不胜感激。

go

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

标签 统计

go ×5

c# ×1

cefsharp ×1

ffmpeg ×1

grpc ×1

grpc-go ×1

mongo-go ×1

mongodb ×1