首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将值移出对象

将值移出对象
EN

Stack Overflow用户
提问于 2018-12-18 09:17:53
回答 2查看 109关注 0票数 1

我有一个像这样的芒果藏品。

代码语言:javascript
复制
[{
    "name": "foo",
    "place": "Paris",
    "other": {
        "var1": "asdf",
        "var2": "asdf",
        "var3": "sdfw",
        etc....
    }
},{
    "name": "Bar",
    "place": "Paris",
    "other": {
        "var1": "asdf",
        "var2": "asdf",
        etc....
    }
}]

我需要将数据显示如下:

代码语言:javascript
复制
  [{
        "name": "foo",
        "place": "Paris",
        "var1": "asdf",
        "var2": "asdf",
        "var3": "sdfw",
        etc...
    },{
        "name": "Bar",
        "place": "Paris",
        "var1": "asdf",
        "var2": "asdf",
        etc....
    }]

所以我希望移除其他的对象,但是把所有的值都保存在里面。实现这一目标的最佳途径是什么。我可以使用Python3或mongo聚合。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-18 09:22:39

您可以使用下面的aggregation使用$replaceRoot$mergeObjects

代码语言:javascript
复制
db.collection.aggregate([
  { "$replaceRoot": {
    "newRoot": { "$mergeObjects": ["$other", "$$ROOT"] }
  }},
  { "$project": { "other": 0 }}
])
票数 4
EN

Stack Overflow用户

发布于 2018-12-18 09:30:14

在Python中这样做在技术上是可能的,而且非常简单:

代码语言:javascript
复制
for obj in collection:
    obj.update(obj.pop("other"))

但是,应该更快地将其留给mongodb,正如Anthony Winzlet的回答所解释的那样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53829741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档