用于查询GridFS的GridFSFileInfo语法

时间:2015-10-12 20:13:39

标签: c# mongodb gridfs

所有。 我有一个文件,通过C#驱动程序2.1rc1将自定义元数据上传到MongoDB(GridFS)。 要上传,我使用:

var mongoClient = new MongoClient("mongodb://localhost:27017");
                var db = mongoClient.GetDatabase("test");
                var mongoCollection = db.GetCollection<testFiles>("Files");

                //Initializing GdridFS conection
                GridFSBucket bucket = new GridFSBucket(db);


                //Uploading received file to GridFS with metadata
                await bucket.UploadFromStreamAsync
                (sourceFileProperties.FileName, sourceFile, new GridFSUploadOptions
                    {
                        Metadata = new BsonDocument
                        {
                            { "FileName", sourceFileProperties.FileName },
                            { "Size", sourceFileProperties.FileSize },
                            { "File ID", sourceFileGUID },
                        }
                    }   
                );

上传的文件在屏幕截图中显示。 File uploaded to GridFS。 经过几天的谷歌搜索,我仍然可以理解,如何查询GridFS并获取所有这些数据。 例如,我想通过“文件ID”下载此文件。

我从:

开始
        var mongoClient = new MongoClient("mongodb://localhost:27017");
        var db = mongoClient.GetDatabase("test");

        //Initializing GdridFS conection
        GridFSBucket bucket = new GridFSBucket(db);
        var collection = db.GetCollection<BsonDocument>("fs.files");

我知道,我需要使用GridFSFileInfo方法,但我无法理解。

非常感谢你。

1 个答案:

答案 0 :(得分:2)

全部。 问题解决了:

//Filter by Metadata property
        var filter = Builders<GridFSFileInfo>.Filter.And(
        Builders<GridFSFileInfo>.Filter.Eq(x => x.Metadata["FileName"], "node-v0.12.7-x64.msi"));

谢谢。