MongoDB _id 字段中的项目嵌套元素
MongoDB project nested element in _id field
我陷入了一些非常愚蠢的事情,但我无法摆脱自己的困境。
MongoDB v4.2 我有一个包含这样的文档的集合:
{"_id":{"A":"***","B":0}}, "some other fields"...
我在 mongo-c 驱动程序之上工作,我只想查询“_id.B”字段,但我不知道该怎么做。我试过:
- "projection":{"_id.B":1}: 它 returns 我整个 _id 对象。 _id.A & _id.B.
- "projection":{"_id.A":0,"All other fields except _id.B":0}: Returns同上。
- "projection":{"_id.A":0,"_id.B":1}: Returns 没有。
当这个对象在 _id 字段中时,我如何才能只获取一些对象元素?第一个选项适用于不在 _id 字段内但不在此处的对象。
此致,感谢您的宝贵时间。
赫克托
您可以在聚合中使用 MongoDB 的 $project 来执行此操作。您还可以使用 $addFields
将 _id.B
放入新字段 + 文档中的所有其他字段并最终投射 _id :0
.
代码:
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 v4.2 我有一个包含这样的文档的集合:
{"_id":{"A":"***","B":0}}, "some other fields"...
我在 mongo-c 驱动程序之上工作,我只想查询“_id.B”字段,但我不知道该怎么做。我试过:
- "projection":{"_id.B":1}: 它 returns 我整个 _id 对象。 _id.A & _id.B.
- "projection":{"_id.A":0,"All other fields except _id.B":0}: Returns同上。
- "projection":{"_id.A":0,"_id.B":1}: Returns 没有。
当这个对象在 _id 字段中时,我如何才能只获取一些对象元素?第一个选项适用于不在 _id 字段内但不在此处的对象。
此致,感谢您的宝贵时间。
赫克托
您可以在聚合中使用 MongoDB 的 $project 来执行此操作。您还可以使用 $addFields
将 _id.B
放入新字段 + 文档中的所有其他字段并最终投射 _id :0
.
代码:
var coll = localDb.GetCollection("yourCollectionName");
var project = new BsonDocument
{
{
"$project",
new BsonDocument
{
{ "_id.B": 1 }
}
}
}
var pipeline = new[] { project };
var result = coll.Aggregate(pipeline);