【发布时间】:2013-03-01 17:36:55
【问题描述】:
我已经编写了一些代码来在 MongoDB 中存储图像文件。现在我想从 mongoDB 中过滤和检索一些图像。我想过滤掉一些图像名称上有一些字符集的图像。 例如:假设我在 mongoDB 中存储了 aaaa_DEX.jpg、bbbb_DEX.jpg、cccc_BVX.jpg、dddd_OUI.jpg、eeee_DEX.jpg 图像,我想获取所有名称上带有“DEX”的图像。查询生成器可以吗?我该怎么做?
上传我使用:
public JsonResult UploadPrimaryImage(string hotelCode)
{
var db = _hoteldbObj.Instance();
var primaryImageBucket = new MongoGridFS(db, new MongoGridFSSettings() {Root = "HotelPrimaryImage"});
foreach (string httpFile in Request.Files)
{
var postedFile = Request.Files[httpFile];
if(postedFile == null)
throw new InvalidOperationException("Invalid file");
var bytes = ReadToEnd(postedFile.InputStream);
using (var c = primaryImageBucket.Create(hotelCode, new MongoGridFSCreateOptions() { ContentType = postedFile.ContentType }))
{
c.Write(bytes, 0, bytes.Length);
c.Flush();
c.Close();
}
}
return new JsonResult();
}
谢谢
【问题讨论】:
-
你能提供一个样本文件吗?你也是用GridFS(docs.mongodb.org/manual/applications/gridfs)来存储的吗?
-
我已经添加了用于上传文件的代码。请看,谢谢
-
如果查询完整的文件名,然后执行 .find("ABC") ,其中 ABC 是您的文件名。如果您想查询文件名中的子字符串,我的建议是将子字符串保存为元数据对象的一部分。有关使用元数据的示例,请参见以下内容:stackoverflow.com/questions/10281610/…
-
谢谢詹姆斯。我会试试看,让你知道状态。但是如果不修改上传代码,我不能使用 GT、GTE、In、LT、LTE、Near、NE、And 或 Query 运算符吗?例如: var query = Query.EQ("_id", id); var entity = collection.FindOne(query);链接:docs.mongodb.org/ecosystem/tutorial/…
-
是的,詹姆斯成功了!!!!!!!!!谢谢你.....
标签: c# mongodb mongodb-.net-driver mongodb-query