Mongodb中数组对象中的字段

时间:2014-09-10 12:28:06

标签: mongodb

样本结构如下:

{
    "_id": 1,
    "College_name" : "abcdef"
    "Students": [
{
  "name": "a",
  "Grade": "First"
},
{
  "name": "b",
  "Grade": "Second"
},
{
  "name": "c",
  "Grade": "First"
},
{
  "name": "d",
  "Grade": "First"

}
]
}

我没有得到的是 - 我希望获得数组中的所有(“Grade”:“First”)对象,并仅向其他对象插入(“Grade”:“First”)对象(“College_name”:“abcdef”)的集合。这个的最佳解决方案是什么? 这可能通过聚合?? 请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您可以使用聚合或mongo查询 {“Grade”:“First”} 获取数据 -

汇总查询 -

db.coll.aggregate([{'$match':{"Students.Grade":"First"}}, {$project: {"_id":1, "College_name":1}}])

Mongo查询 -

db.coll.find({"Students.Grade":"First"}, {"College_name":1})

之后,您可以将数据插入其他集合。

答案 1 :(得分:0)

这个问题的答案在链接中:

query to retrieve multiple objects in an array in mongodb

即, 聚合查询将有4个管道运算符:

  [match, unwind, match, group]

然后可以插入其他集合。