文档上缺少字段的 MongoDB 投影

Posted

技术标签:

【中文标题】文档上缺少字段的 MongoDB 投影【英文标题】:MongoDB projection on missing field on Document 【发布时间】:2016-07-08 19:23:45 【问题描述】:

我正在使用新的 Mongodb C# Driver 2.2.4,我有一个集合,但我没有文档中的所有字段。例如

[BsonIgnoreExtraElements]
public class Category : Entity

    [BsonElement("name")]
    public string Name  get; set; 

    [BsonElement("title")]
    public string Title  get; set; 

    [BsonElement("description")]
    public string Description  get; set; 

这是我的查询,我只预测姓名和头衔。

var category = All().Where(c => c.Name == "test")
                            .Select(c => new  c.Title, c.Name )
                            .FirstOrDefault();

我的数据是这样的

 
  "_id" : ObjectId("5575b9351eccba081c144433"), 
  "name" : "Sample Name", 
  "title" : "Sample Title", 
  "description" : "Sample Description"

 
  "_id" : ObjectId("5575b9351eccba081c144433"), 
  "name" : "Test", 
  "description" : "Test Description", 

现在,由于 Name = "Test" 的文档没有 Title,它会在下面抛出错误。

No matching creator found. 

【问题讨论】:

【参考方案1】:

检查此链接。你应该试试 Query.exists

MongoDB how to check for existence

或者

MongoDB C# - Getting BsonDocument for an Element that doesn't exist

【讨论】:

以上是关于文档上缺少字段的 MongoDB 投影的主要内容,如果未能解决你的问题,请参考以下文章

即使指定了投影,Mongodb 也会返回所有字段

蒙古数据库。限制仅具有“投影”(即过滤器)的给定字段的子文档的方法?

蒙古数据库。限制仅具有“投影”(即过滤器)的给定字段的子文档的方法?

使用 Mongoose 在投影中包含 Mongodb“_id”字段

使用 Mongoose 在投影中包含 Mongodb“_id”字段

解决:mongod启动报错缺少libcrypto.so.1.1