【问题标题】:Filtering set of images from MongoDB从 MongoDB 过滤图像集
【发布时间】: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


【解决方案1】:

如果查询完整的文件名,执行 .find("ABC") (其中 ABC 是您的文件名)将处理此问题。

如果您想查询文件名中的子字符串,我的建议是将子字符串保存为元数据对象的一部分。见this post for an example of working with metadata

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多