c# - 如何测试 MongoDB 文档中的字符串字段不为空?

标签 c# mongodb mongodb-query mongodb-.net-driver

我正在尝试获取具有空字符串字段的文档数。这个字段,我们称之为“Field_One”存在于所有文档中(所以,为了清楚起见,我不是试图查找该字段是否存在,我想在字段“Field_One”中查找哪些文档没有任何内容(空字符串) ”。

我尝试使用(使用 C# 驱动程序):

collection.Find(Query.NE("Field_One", BsonNull.Value)).Count()
collection.Find(Query.NE("Field_One", BsonString.Null)).Count()

甚至(有人在某处提出这个建议):

collection.Find(Query.GT("Field_One", BsonString.Empty)).Count()

但它不起作用(他们返回所有文档)。

另外,作为一个相关问题:这是获取集合中匹配文档数量的最佳方法吗?据我了解,它实际上不会将数据库中的文档检索到我的程序中,因此计数计算是在 MongoDB 服务器中完成的。

最佳答案

BsonNull.Value 转换为 null
BsonString.Empty 翻译成“”
BsonObject.Create("") 也翻译成 ""

 collection.Find(Query.NE("Field_One", BsonString.Empty)).Count()

翻译成 "Field_One": { "$ne": ""} 如果该字段实际上是用 ""填充的,那么您正在寻找的应该是什么

关于c# - 如何测试 MongoDB 文档中的字符串字段不为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16064881/

相关文章:

C# PictureBox 控件闪烁/性能问题

c# - 如何以更通用的方式将运算符应用于表达式

node.js - 带有可能为空参数的 find() 语句

mongodb - 如何在 mongo 中指定多个字段的唯一性,而不是组合?

c# - .NET 4.0 中的 Response.Redirect

c# - 如何使用 C#.Net 中的 LDAP 在 Windows 事件目录中获取组织单位的街道地址属性

node.js - 如何使用 MongoDB 在 Heroku 上托管我自己的解析服务器?

javascript - 如何使用 mongo/mongoose 通过 _id 以外的字段查找文档

javascript - Mongoose 找到一个并推送到文档数组

python - 如何将文档附加到mongodb中的现有文档