所有。
我有一个文件,是用自定义元数据通过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"));

谢谢您。

07-26 06:53