【发布时间】:2021-12-18 22:19:12
【问题描述】:
我正在处理我的一些项目,该项目将使用 MongoDB GridFS 来存储多媒体(视频、音频)文件。
该项目使用 ASP.NET Core Web API 向客户端提供数据。 问题是我从来没有得到对文件的引用。在数据库中找不到该文件,当我尝试通过 id 查找文件时也是如此。
但是当我使用 NoSQLBooster for MongoDB 并使用相同的值对 mongodb 进行查询时,我得到了我正在寻找的文件的正确结果。
MongoDB GridFS 文档中的代码也不起作用。 https://mongodb.github.io/mongo-csharp-driver/2.13/reference/gridfs/findingfiles/
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("db_gridfs");
var movieName = "The Video.mp4";
IGridFSBucket bucket = new GridFSBucket(database);
var filter = Builders<GridFSFileInfo>.Filter.Eq(x => x.Filename, movieName);
using (var cursor = await bucket.FindAsync(filter))
{
var fileInfo = (await cursor.ToListAsync()).FirstOrDefault();
try
{
Console.WriteLine($"{nameof(fileInfo.Id)}: {fileInfo.Id}");
Console.WriteLine($"{nameof(fileInfo.Filename)}: {fileInfo.Filename}");
Console.WriteLine($"{nameof(fileInfo.Length)}: {fileInfo.Length}");
Console.WriteLine($"{nameof(fileInfo.ChunkSizeBytes)}: {fileInfo.ChunkSizeBytes}");
Console.WriteLine($"{nameof(fileInfo.UploadDateTime)}: {fileInfo.UploadDateTime}");
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
错误
System.NullReferenceException:对象引用未设置为对象的实例。
我的项目文件
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>API_Test</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MongoDB.Driver" Version="2.13.2" />
<PackageReference Include="MongoDB.Driver.GridFS" Version="2.13.2" />
</ItemGroup>
</Project>
MongoDB 外壳
> show dbs
admin 0.000GB
config 0.000GB
db_gridfs 0.029GB
largFiles 0.022GB
local 0.000GB
myLocalMongoDB 0.000GB
> use db_gridfs
switched to db db_gridfs
> show collections
videos.chunks
videos.files
> db.videos.files.find()
{ "_id" : ObjectId("61800905290dc9ea5307ff8d"), "length" : 23870090, "chunkSize" : 261120, "uploadDate" : ISODate("2021-11-01T15:34:29.262Z"), "filename" : "The Video.mp4", "contentType" : "video/mp4" }
{ "_id" : ObjectId("6183e337718935cd919bdc0e"), "length" : 8221882, "chunkSize" : 261120, "uploadDate" : ISODate("2021-11-04T13:42:15.929Z"), "filename" : "The Video 2.mp4", "contentType" : "video/mp4" }
【问题讨论】:
标签: mongodb asp.net-core-webapi gridfs