Найти с указанным c содержанием в mongodb - PullRequest
0 голосов
/ 03 мая 2020

Привет, как я могу найти данные с определенным c запросом. Например, у меня есть коллекция ниже:

{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "05"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "06"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "07"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "08"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "04"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2021",
    "month" : "05"
}

Так что я хочу получить данные "centId" должен быть "261FB12F", "servId" должен быть "CBBFEC62", "year" не быть "2020" и "месяц" тоже не будет "06". Как я могу отправить запрос. Я хочу результат, как показано ниже:

{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "06"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "07"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "08"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2020",
    "month" : "04"
},
{
    "centId" : "261FB12F",
    "servId" : "CBBFEC62",
    "year" : "2021",
    "month" : "05"
}

Ответы [ 3 ]

0 голосов
/ 03 мая 2020
db.getCollection("mycollection").find({
    "centerId": "A",
    "ServiceId": "B",
    "country": {
        $ne: 'Georgia'
    },
    city: {
        $ne: 'Batumi'
    }
})
0 голосов
/ 06 мая 2020
db.collection.aggregate({
  $match: {
    $expr: {
      $and: [
        {
          $eq: [
            "$centId",
            "261FB12F"
          ]
        },
        {
          $eq: [
            "$servId",
            "CBBFEC62"
          ]
        },
        {
          $ne: [
            "$year",
            "2020"
          ]
        },
        {
          $ne: [
            "$month",
            "06"
          ]
        }
      ]
    }
  }
})

MongoPlayGroundLink

0 голосов
/ 03 мая 2020

Звучит так, как будто вы просто хотите использовать логические выражения Mon *. в частности, оператор $ и в вашем случае:

db.collection.find({
    $and: [
        {centerId: "A"},
        {ServiceId: "B"},
        {country: {$ne: "Georgia"}},
        {city: {$ne: "Batumi"}}
    ]
})
...