怎么从GridFS里面取出来保存的所有的文件,然后再按条件筛选

时间:2021-12-20 02:38:13
gfs := db.GridFS("fs")
iter := gfs.Find(nil).Iter()

5 个解决方案

#1


其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

#2


gopkg.in/mgo本身的文档里也有例子:

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Close() != nil {
    panic(iter.Close())
}

#3


引用 1 楼 svenwang 的回复:
其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

我搜的这个问题,看到的都是java里面的一些处理,剩下的关于go的就剩这些官方文档了。这段也在文档里看了,怎是感觉这个函数的功能不是很确切,不是我要的,看了几眼就放过去,我再仔细试一试

#4


引用 3 楼 u012905769 的回复:
Quote: 引用 1 楼 svenwang 的回复:

其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

我搜的这个问题,看到的都是java里面的一些处理,剩下的关于go的就剩这些官方文档了。这段也在文档里看了,怎是感觉这个函数的功能不是很确切,不是我要的,看了几眼就放过去,我再仔细试一试

这段代码就是枚举出所有文件,只是例子里是经过排序的。
你要的功能不是枚举出每个文件,那么是什么呢?

#5


引用 4 楼 svenwang 的回复:
Quote: 引用 3 楼 u012905769 的回复:

Quote: 引用 1 楼 svenwang 的回复:

其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

我搜的这个问题,看到的都是java里面的一些处理,剩下的关于go的就剩这些官方文档了。这段也在文档里看了,怎是感觉这个函数的功能不是很确切,不是我要的,看了几眼就放过去,我再仔细试一试

这段代码就是枚举出所有文件,只是例子里是经过排序的。
你要的功能不是枚举出每个文件,那么是什么呢?

引用 4 楼 svenwang 的回复:
Quote: 引用 3 楼 u012905769 的回复:

Quote: 引用 1 楼 svenwang 的回复:

其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

我搜的这个问题,看到的都是java里面的一些处理,剩下的关于go的就剩这些官方文档了。这段也在文档里看了,怎是感觉这个函数的功能不是很确切,不是我要的,看了几眼就放过去,我再仔细试一试

这段代码就是枚举出所有文件,只是例子里是经过排序的。
你要的功能不是枚举出每个文件,那么是什么呢?

确实可以,我一开始没有仔细看,而且用的时候我是直接在保存的后面添加这段代码,结果并不能显示当前保存的文件,而我一共就存了两个文件用来测试,一个固定的,一个用来测试重复的要删除重建。所以找个函数的效果就不是我想要的,就跳过了这个函数,受教训了以后仔细看文档

#1


其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

#2


gopkg.in/mgo本身的文档里也有例子:

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Close() != nil {
    panic(iter.Close())
}

#3


引用 1 楼 svenwang 的回复:
其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

我搜的这个问题,看到的都是java里面的一些处理,剩下的关于go的就剩这些官方文档了。这段也在文档里看了,怎是感觉这个函数的功能不是很确切,不是我要的,看了几眼就放过去,我再仔细试一试

#4


引用 3 楼 u012905769 的回复:
Quote: 引用 1 楼 svenwang 的回复:

其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

我搜的这个问题,看到的都是java里面的一些处理,剩下的关于go的就剩这些官方文档了。这段也在文档里看了,怎是感觉这个函数的功能不是很确切,不是我要的,看了几眼就放过去,我再仔细试一试

这段代码就是枚举出所有文件,只是例子里是经过排序的。
你要的功能不是枚举出每个文件,那么是什么呢?

#5


引用 4 楼 svenwang 的回复:
Quote: 引用 3 楼 u012905769 的回复:

Quote: 引用 1 楼 svenwang 的回复:

其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

我搜的这个问题,看到的都是java里面的一些处理,剩下的关于go的就剩这些官方文档了。这段也在文档里看了,怎是感觉这个函数的功能不是很确切,不是我要的,看了几眼就放过去,我再仔细试一试

这段代码就是枚举出所有文件,只是例子里是经过排序的。
你要的功能不是枚举出每个文件,那么是什么呢?

引用 4 楼 svenwang 的回复:
Quote: 引用 3 楼 u012905769 的回复:

Quote: 引用 1 楼 svenwang 的回复:

其实你可以自己搜索一下,你遇到的问题别人一般也会遇到。
我对mgo不怎么了解,但是我搜到类似的例子:
http://godoc.org/labix.org/v1/mgo#Iter.Next

gfs := db.GridFS("fs")
query := gfs.Find(nil).Sort("filename")
iter := query.Iter()
var f *mgo.GridFile
for gfs.OpenNext(iter, &f) {
    fmt.Printf("Filename: %s\n", f.Name())
}
if iter.Err() != nil {
    panic(iter.Err())
}

我搜的这个问题,看到的都是java里面的一些处理,剩下的关于go的就剩这些官方文档了。这段也在文档里看了,怎是感觉这个函数的功能不是很确切,不是我要的,看了几眼就放过去,我再仔细试一试

这段代码就是枚举出所有文件,只是例子里是经过排序的。
你要的功能不是枚举出每个文件,那么是什么呢?

确实可以,我一开始没有仔细看,而且用的时候我是直接在保存的后面添加这段代码,结果并不能显示当前保存的文件,而我一共就存了两个文件用来测试,一个固定的,一个用来测试重复的要删除重建。所以找个函数的效果就不是我想要的,就跳过了这个函数,受教训了以后仔细看文档