当前位置: 首页 > 知识库问答 >
问题:

MongoDB项目嵌套元素位于\u id字段中

霍建章
2023-03-14

我陷入了一件非常愚蠢的事情中,但我无法摆脱自己。

MongoDB v4.2和我有一个包含以下文档的集合:

{"_id":{"A":"***","B":0}}, "some other fields"...

我正在使用mongo-c驱动程序,我只想查询“\u id.B”字段,但我不知道怎么做。我尝试过:

  1. “projection”:{“\u id.B”:1}:它返回整个\u id对象_id.A

当此对象位于id字段内时,如何才能仅获取一些对象元素?第一个选项适用于不在\u id字段内但不在此处的对象。

致以最良好的问候,感谢您抽出时间。

赫克托

共有1个答案

丁正阳
2023-03-14

您可以在聚合中使用MongoDB的$项目来实现这一点。您还可以使用$添加字段将id.B放入新字段文档中的所有其他字段

代码:

var coll = localDb.GetCollection("yourCollectionName"); 

var project = new BsonDocument 
{ 
    { 
        "$project", 
        new BsonDocument 
            { 
                { "_id.B": 1 }
            } 
    } 
}
var pipeline = new[] { project };
var result = coll.Aggregate(pipeline);

测试:MongoDB-Playground

 类似资料:
  • 我的mongo数据库中有: 我想从这个数组中删除on元素。我用的是golang和mgo。v2驱动程序,下面是我的代码: 它继续成功,但不删除项目时,我检查mongob。有人能告诉我我做错了什么吗?谢谢你们

  • 在嵌套字段中读取MongoDB更新数据后,我使用 我如何访问那个元素?(只是子元素而不是整个文档)< br >例如< code > db . users . findone({ _ id:' 123 ' },{ ' $ elem ':" friends . 0 . emails . 0 . email " }); 例如:< br >如果它是一个JavaScript对象,它将是< br> 如果是Py

  • 这是我在mongo的文档: 我需要更新内部房间阵列中的对象。我尝试了一个选择匹配元素的查询没有语法错误,但出现了一个错误: “errmsg”:“字段“calendar.0.rooms.0.price”必须是数组,但在文档{u id:ObjectId('5cd26a886458720f7a66a3b8')中为字符串类型”, 这是我的疑问: 这是我在StackOverflow中找到的一些参考,但没有帮

  • 问题内容: 我有一个:before开头的’quote’和一个:after结束的报价。 现在,我想要的是一个:after:after供“引用”参考,但我无法使其正常工作。 有人知道这是否可能吗? 到目前为止,我的代码: 问题答案: 已经提出了嵌套和伪元素的想法;请参阅“生成和替换的内容”模块的这一部分。但是,该模块已被放弃,等待完全重写,因此在重新发布该文档之前,我不会屏息。即便如此,嵌套内容伪元素

  • 我有以下POJO 在下面的类中,我想直接检索给定人员的嵌套字段“cars”,其名称作为参数传递,但它返回一个具有null值的列表。 但是,如果在上面的searchHits代码中,我将类更改为Person,如下所示,我将返回pojo Person,其中只填写属性“cars”(所有其他属性检索为null): 但是如何直接检索嵌套的属性车?

  • 有人能帮忙填写上面的评论部分吗?或者是否有其他选项来映射这些对象? 编辑:我尝试了下面的解决方案,但是接口实现类本身发生了变化。