Mongodb Единый документ и массив полей - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть структура коллекции, как показано ниже.

[
  {
    "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. , и я должен иметь возможностьпросмотр на основе addr_id для этого конкретного идентификатора пользователя
  3. Если это поиск userId и addr_name Я получение всех данных для этого пользователя .

    ниже - запрос, который я использовал для 3-й точки.

    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"
    }
  ]
}

IЯ получаю полные данные.Пожалуйста, помогите узнать обо всех трех ..

спасибо ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...