Mongodb单个文档和字段数组

时间:2018-11-30 14:35:40

标签: mongodb mongodb-query

我的收藏结构如下。

[
  {
    "userName": "name",
    "userId": "1234",
    "visitedaddr": [
      {
        "addr_id": "xyz",
        "addr_name": "tdl",
        "addr_time": "timestamp",
        "days_spent": [
          {
            "days": "1",
            "visited_clients": "3"
          }
        ]
      },
      {
        "addr_id": "xyx",
        "addr_name": "tdl",
        "addr_time": "timestamp",
        "days_spent": [
          {
            "days": "1",
            "visited_clients": "3"
          }
        ]
      },
      {
        "addr_id": "xy1",
        "addr_name": "rjplm",
        "addr_time": "timestamp",
        "days_spent": [
          {
            "days": "1",
            "visited_clients": "3"
          }
        ]
      }
    ]
  }
]
  • 用户可以访问新地址,并花几天时间访问客户。
  • 用户可以访问同一地址,并花了几天时间访问另一组客户。
  • addr_id是唯一的,而addr_name不是唯一的。

我想知道的是 ->我需要根据新用户/旧用户插入新文档。

  1. 如果它是旧用户,我应该能够基于userId多次添加新对象到文档中
  2. 并且我应该能够基于该特定用户ID的addr_id进行查看
  3. 如果正在搜索 userId和addr_name ,我正在 获取该用户的所有数据

    下面是我用于第三点的查询。

    db.mycollec
      .find(
        { userId: "1234", "visitedaddr.addr_name": "tdl" },
        {
          projection: {
            _id: 0,
            userName: 1,
            userId: 1,
            "visiteaddr.addr_name": 1,
            "visiteaddr.addr_id": 1
          }
        }
      )
      .toArray();
    

下面是响应。

 {
  "userId": 1234,
  "userName": "name",
  "visitedaddr": [
    {
      "addr_id": "xyz",
      "addr_name": "tdl"
    },
    {
      "addr_id": "xyx",
      "addr_name": "tdl"
    },
    {
      "addr_id": "xy1",
      "addr_name": "rjplm"
    }
  ]
}

我正在获取完整的数据。请帮助了解这三个方面。

谢谢..

0 个答案:

没有答案