首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从每个文档中获取单个属性数组

如何从每个文档中获取单个属性数组
EN

Stack Overflow用户
提问于 2016-02-11 08:12:51
回答 1查看 111关注 0票数 0

我为没有具体说明的问题道歉,但我真的不知道它叫什么。

假设我在“所有者”文档中有“文档”属性,如下所示

代码语言:javascript
复制
owner : [{
  "_id": "1111",
  "documents": [{
      "file_name": "126789AP.pdf", "_id": "00A1"
    },{
      "file_name": "126789CE.pdf", "_id": "00A2"
    },{
      "file_name": "514132AP.pdf", "_id": "00A3"
    }],
  "name": "Dalton"
},{
  "_id": "2222",
  "documents": {
      "file_name": "126789AP.pdf", "_id": "00B1"
  },
  "name":"Mason"
}]

我需要像这样从每个所有者那里得到一个文档输出

代码语言:javascript
复制
documents : [{ 
    "file_name": "126789AP.pdf", "_id": "00A1"
  },{ 
    "file_name": "126789CE.pdf", "_id": "00A2"
  },{ 
    "file_name": "514132AP.pdf", "_id": "00A3"
  },{ 
    "file_name": "126789AP.pdf", "_id": "00B1"
  }]

我已经查找了它的文档,并尝试了使用find()和聚合(),但是我似乎遗漏了一些东西,所以它变成了"documents“对象的数组,但是我认为mapReduce不是最好的方法,所以我寻求帮助。

编辑

这里是find()

代码语言:javascript
复制
db.owner.find({ "documents":{$exists:true} },{documents:1})

以下是聚合()

代码语言:javascript
复制
db.owner.aggregate([{$project:{documents:1}},{$match:{documents:{$exists:true}}‌​}])

编辑2我终于想出来了!这是我的答案

代码语言:javascript
复制
db.students.aggregate([
  { $unwind : "$documents" },
  { $match : { "documents" : { $exists : true }}},
  { $project : { documents : 1 }}
])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 08:21:22

只是javaScript中的一个基本循环

代码语言:javascript
复制
owner = [{
  "_id": "1111",
  "documents": [{
      "file_name": "126789AP.pdf", "_id": "00A1"
    },{
      "file_name": "126789CE.pdf", "_id": "00A2"
    },{
      "file_name": "514132AP.pdf", "_id": "00A3"
    }],
  "name": "Dalton"
},{
  "_id": "2222",
  "documents": {
      "file_name": "126789AP.pdf", "_id": "00B1"
  },
  "name":"Mason"
}];

var documents = owner.map(function(obj){ 
     return obj.documents;
});
console.log(documents);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35333937

复制
相关文章

相似问题

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