草庐IT

匿名管道

全部标签

mongodb - mongodb 管道查询 $project 中的错误应该是什么?

我正在mongodb集合中传输我的数据,但它不会向我返回任何数据,代码如下:-funcGetLog(c*gin.Context){values:=c.Query("value")fmt.Println("value",values)result:=[]bson.M{}mongoSession:=config.ConnectDb()getCollection:=mongoSession.DB(config.Database).C(config.LogCollection)pipe:=getCollection.Pipe([]bson.M{bson.M{"$unwind":"$bookin

go - 管道多个命令然后写入文件

我正在尝试通过管道传输多个*exec.Cmd,然后写入文件。当我尝试使用一个cmd并输出到文件时,它会写入文件。但是,当我尝试使用多个命令并输出到文件时,它没有。但是exec.Cmd似乎正在管道化,因为它可以正确地输出。outfile,err:=os.Create("./out.txt")iferr!=nil{panic(err)}deferoutfile.Close()c1:=exec.Command("sh","-c","whilesleep1;doechotest;done")c1.Stdout=outfile_=c1.Run()for{}上面的代码每隔一秒写入一次文件。但是当我

go - 如何实现 goroutines 的管道?

我需要一些帮助来了解如何使用管道将数据从一个goroutine传输到另一个goroutine。我读了golangblogpostonpipeline,我理解了但不能完全付诸行动,因此想到向社区寻求帮助。现在,我想出了这个丑陋的代码(Playground):packagemainimport("fmt""sync""time")funcmain(){wg:=sync.WaitGroup{}ch:=make(chanint)fora:=0;a问题我想使用管道或任何正确的方式来做这件事。此外,博文中显示的管道不适用于goroutines,因此我无法自己完成。在现实生活中,func1和func

go - 匿名结构作为模板中的管道

有没有办法在html/template中执行以下操作?{{template"mytemplate"struct{Foo1,Foo2string}{"Bar1","Bar2"}}}实际上在模板中,如上。不是通过在返回结构的FuncMap中注册的函数。我试过了,但是Parse崩溃了,seePlayground.也许只是语法错误? 最佳答案 正如其他人所指出的,这是不可能的。模板在运行时解析,无需Go编译器的帮助。因此,允许任意Go语法是不可行的(尽管请注意,这并非不可能,因为标准库包含解析Go源文本的所有工具,请参阅标准库中“前缀为”g

go - 如何使用适用于 Windows 的 GitLab 管道进行构建

我有以下.gitlab-ci.yml...stages:-test-build-artimage:golang:1.9.2variables:BIN_NAME:exampleARTIFACTS_DIR:artifactsGO_PROJECT:exampleGOPATH:/gobefore_script:-mkdir-p${GOPATH}/src/${GO_PROJECT}-mkdir-p${CI_PROJECT_DIR}/${ARTIFACTS_DIR}-goget-ugithub.com/golang/dep/cmd/dep-cp-r${CI_PROJECT_DIR}/*${GOPA

映射为匿名结构成员

我在go中遇到了一些我无法完全理解的行为,欢迎任何类型的解释:typeTeststruct{Namestring//orothermetadatatobestoredalongthecoremapelementmap[string]string}以上代码将无法编译并出现unexpectedmap错误。这可能是因为structFielddelarations必须是类型,但是我无法理解为什么map[string]string不是类型。将其更改为typeEmbeddedmap[string]stringtypeTeststruct{NamestringEmbedded}get解决了编译器错误

multithreading - 如何在管道中同步 goroutines

我需要帮助才能理解为什么以下代码不起作用。我正在构建一个管道并尝试有一个步骤来同步来自两个源channel的值。我的源代码/生产者代码如下所示(在我的真实代码中,我从文件中读取文本)。源已排序,但不能保证两个源中的值都存在。funcSource()同步代码如下所示:funcSync(a,bav{out我的程序看起来像这样:funcmain(){os:=Source()ns:=Source()forval:=rangeSync(ns,os){fmt.Printf("[SYNCED]%v\n",val)}}预期的行为是我的两个源将值缓冲到channel中,我的同步首先从第一个源读取值。然后

mongodb - 如何将 exec 函数的标准输出通过管道传递给另一个函数的读取器?

我正在尝试将标准输出从mongodump流式传输到s3。我已经正确掌握了S3任意长度流的语法,但我不明白如何将这两个函数结合起来。我不想在开始上传到S3之前处理整个mongodump命令。这是我目前所拥有的:dumpCmd:=exec.Command("mongodump","--host","","--port","","--archive")dumpCmd.Stdout=os.Stdoutuploader:=s3manager.NewUploader(session.New(&aws.Config{Region:aws.String("us-east-1")}))result,er

go - 在 Golang exec 中使用管道运行命令

我正在尝试从here中获取示例正在使用phantomjs录制网页并将标准输出(图像)通过管道传输到ffmpeg命令以创建视频。声明您需要运行的命令是:phantomjsrunner.js|ffmpeg-y-c:vpng-fimage2pipe-r25-t10-i--c:vlibx264-pix_fmtyuv420p-movflags+faststartdragon.mp4如果我直接在终端中运行该命令的类似版本,我可以让它正常工作。问题是我需要通过Golangos/exec运行上面的命令包裹。随着:cmd:=exec.Command(parts[0],parts[1:]...)方法,第一

MongoDB Mgo Sort Skip Limit 聚合管道 - 结果乱序

我有一个如下所示的文档“项目”:{"_id":ObjectId("5a146ce6cca59f21e897589b"),"platform":"example_platform","mp_id":"example_marketplace_id","category":{"platform":"example_platform","id":999,"name":"example_category_name"},"image_urls":["http://example.com/image.jpg"],"title":"example_title","seller":{"username"