c# - 检查文档 C# 中是否存在特定字段
问题描述
我有一些发票数据保存在数据库中,我想检查具有特定名称的文件是否存在。
我正在使用以下代码
var filename = "extra.png";
MongoClient mongoclient = new MongoClient(db_server_ip);
MongoDatabaseBase myDB = (MongoDatabaseBase)mongoclient.GetDatabase(db_name);
IMongoCollection<Invoice> coll = myDB.GetCollection<Invoice>(collection_name);
var query = Query<Invoice>.EQ(u => u.Metadata.FileName, filename).ToBsonDocument();
var exist= coll.Find(query);
它正在返回类似的东西{find({ "Metadata.FileName" : "extra.png" })}.
我也试过这个
var filter = Builders<IConvertibleToBsonDocument>.Filter.Eq("FileName", filename);
var result = coll.Find<IConvertibleToBsonDocument>(filter).ToList();
但它没有返回任何内容,列表计数为 0,即使 DB 中有这么多具有该文件名的文档。
这是我的 MongoDb 文档
无法弄清楚如何检查具有特定 FileName 的文档是否存在。
任何帮助都感激不尽。
谢谢。
解决方案
我认为您在和之间感到find
困惑exists
find
查找满足条件的文档 -name:a.png
将查找name
字段包含的文档,a.png
同时$exists
检查name
任何文档中是否存在字段并返回。
如果您正在寻找以后的案例,您可以Query.Exist
从C#
驱动程序中使用。否则检查 find 是否返回任何文档。
推荐阅读
- javascript - 如何引用 Javascript 数组中的变量?
- ios - Ionic cordova build ios - 无法读取未定义的属性“名称”
- azure - 无法上传到 Blob 存储,缺少 Access-Control-Allow-Origin 标头
- python - 如何在 Google Cloud VM (SSH) 中查看绘图
- task - 在页面视图之间导航时如何取消所有正在运行的 saga
- ios - iOS Swift 如何使用 mp3 音乐和无麦克风录制视频
- visual-studio-code - 在 VSCode 中获得适当的 Linting 流的推荐方法?
- java - 如何创建随机字符串?
- java - 如何在 AEM 中获取 Smart Collection 中的所有资产?
- python - 如何检查 Django 模型实例是否已预选相关数据