首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >即使值存在,MongoDB仍在标识ObjectID为null的字段

即使值存在,MongoDB仍在标识ObjectID为null的字段
EN

Stack Overflow用户
提问于 2018-05-24 13:46:21
回答 1查看 2K关注 0票数 0

我已经创建了一个集合,并通过将4个字段分组为唯一字段来添加索引键。

下面是字段和值的示例。

代码语言:javascript
复制
"username":string,
"companyID": ObjectID,
"areaCode": string,
"lotNum":string

companyID的ObjectID,我从另一个集合的文档ID中获取它作为它的ID。

我试图通过MongoDB .Net驱动程序插入,但遇到了一些问题。

代码语言:javascript
复制
Company company = new Company()
            {
                CompanyName = "xyz" 
            };

await _company.InsertOneAsync(company); //_company is IMongoCollection object

SomeClass someClass = new SomeClass()
           {
                UserName = "James",
                CompanyID = company.ID, //This is the ObjectID generated by MongoDB
                AreaCode = "ABC",
                LotNum = "1234a"
           };
await _someClass.InsertOneAsync(company); //_someClass is IMongoCollection object

因此,MongoDB中的document对象将如下所示。实际上,我可以使用Compass查看文档。

代码语言:javascript
复制
_id:ObjectID("5b062d5be75ed035f057bf06")
username:"James",
companyID: ObjectID("5b062d5be75ed035f057bf05"),
areaCode: "ABC",
lotNum:"1234a"

现在的问题是,当我尝试使用{companyID:ObjectID("5b062d5be75ed035f057bf05")}在SomeClass集合中查找文档时,我无法找到它。但如果我使用{companyID:null}。它正在返回文档。

我不能添加任何用户名相同的新文档,areaCode和lotNum使用不同的companyID,即使ID来自新创建的具有全新ID的公司对象,"as duplicate key error collection“也会发生。MongoDB仍然说它是空的。

我做错了什么吗?我怎样才能解决这个问题。

下面是我的公司和SomeClass的数据对象

代码语言:javascript
复制
 public class Company
 {
    public ObjectId Id { get; set; }
    public string CompanyName{ get; set;}
}


 public class SomeClass
 {
    public ObjectId Id { get; set; }

    public string UserName { get; set;}

    [BsonRepresentation(BsonType.ObjectId)]
    public string CompanyID { get; set; }

    public string AreaCode{ get; set; }

    public string LotNum{ get; set; }
}
EN

回答 1

Stack Overflow用户

发布于 2018-05-25 01:50:35

当您从集合中检索一个文档并获取它的ObjectId时,它是一个字符串。

您需要将其转换为ObjectId类型的object。

新建ObjectId("string objectid")

这就是我们在nodejs中做的事情。请查看C# mongodb驱动程序文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50501828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档