问题描述
我需要仅在json数组内的json对象中投影特定字段。假设我有一个包含许多如下文档的收藏集
{
"_id" : Object("sddf3r"),"item_id" : "1235","outerObj" : [{
"fieldA" : "valueA","fieldB" : "valueB","created_at" : "2019-07-10T14:25:30.000Z"
}]
}
现在我想将字段item_id,outerObj.created_at导出为csv,我使用以下查询
mongoexport --host="localhost:27017" -d testdb -c items --query '{"item_id" : {$in :["1235"]}}' --csv -f item_id,outerObj.created_at --out output.csv
但这会导致整个outerObj被打印出来。
我应该如何修改查询以仅导出externalObj内部的created_at字段?
解决方法
如果仅对从externalObj数组导出第一项感到满意,则可以在字段列表中使用索引:
mongoexport \
--host="localhost:27017" \
-d testdb \
-c items \
--query '{"item_id" : {$in :["1235"]}}' \
--csv \
-f item_id,outerObj.0.created_at \
--out output.csv