如何从MongoDB和Cosmos DB的value字段中获取可嵌入文档?

时间:2019-02-28 08:21:06

标签: java mongodb azure-cosmosdb

如何从MongoDB和Cosmos DB的值字段中获取可嵌入文档(存储的较大JSON的一小部分)?

如果我想以{key,value}的方式将数据存储在MongoDB中,其中key是学生卷号,而value是JSON格式的Student Object的完整数据结构。

下面的示例是MongoDB中存储的学生关键卷编号的值

{
  "name": "Rahul",
  "class": 12,
  "marks": {
    "maths": 45,
    "bio": 56,
    "chemistry": 76,
    "practicals": {
      "bio": 20,
      "chemistry": 25,
      "phy": 30
    }
  },
  "address": {
    "city": "bangalore",
    "per": {
      "adminUserId": 25,
      "name": "Rahul Gupta",
      "admin": false,
      "active": true,
      "email": "Rahul.Gupta@mail.com"
    }
  }
}

从上述值来看,我只想从完整文档中获取“ Marks”或“ practicals” JSON,以避免网络负载将完整文档从MongoDB传输到客户端。

2 个答案:

答案 0 :(得分:1)

db.yourcollection.find({name:"Rahul"},{marks:1})

应该做。如在MongoDB中看到的,您可以指定条件以及要检索的字段。 有关更多选项,请检查here

答案 1 :(得分:0)

您可以在下面的查询中编写

db.student.aggregate([
{ $match : {'name': "Rahul" }},
{ $project :{"marks":1} }
])