所有。
我有一个文件,是用自定义元数据通过c driver 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方法,但我不知道如何使用。
非常感谢。
最佳答案
所有。
问题的解决方法是:
//Filter by Metadata property
var filter = Builders<GridFSFileInfo>.Filter.And(
Builders<GridFSFileInfo>.Filter.Eq(x => x.Metadata["FileName"], "node-v0.12.7-x64.msi"));
谢谢您。