所有。 我有一个文件,通过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方法,但我无法理解。
非常感谢你。
答案 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"));
谢谢。