我有一个包含对象数组的文档集合:
db.collection.insert({
arr: [
{ id: 1, text: 'foo' },
{ id: 2, text: 'bar' },
]
});
是否可以提取/投影/添加数组中一个元素的字段?例如,数组的第一个元素的text
字段。我已经尝试了各种不同形式的$addFields在MongoPlayground中。
db.collection.aggregate([
{
$addFields: { text1: '$arr.text' }
}
]);
但是没有任何东西仅生成一个text
字段。最好的情况是,使用上述语法,我得到了两者,但我只想要一个字段,以便在其上使用 $type,因为它似乎$type
无法检查数组元素。