我在MongoDB中有以下文档。
实际输出:
> db.test.findOne({},{_id:0,abc:1})
{ "abc" : "{ \"d\" : 4.864, \"t\" : 16, \"g\" : 5 }" }
我想将字段abc.d
提升到根目录,但以下方法不起作用。
> db.test.aggregate([{$project:{"_id":0,"abc.d":1}}])
> db.test.aggregate([{$project:{"_id":0,abcd:"$abc.d"}}])
是否与原始子文档中有其他引号的事实有关?
答案 0 :(得分:0)
在您的文档中,abc
不是子文档。将abc doc的值放在引号中使它像json字符串一样,没有别的。
为了将其存储为子文档,您需要将其存储为:
{
"abc" : {
"d" : 4.864,
"t" : 16,
"g" : 5
}
}
现在,以下聚合预测将起作用:
db.test.aggregate([{$project:{"_id":0,abcd:"$abc.d"}}])
结果:
{ "abcd" : 4.864 }