第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MongoDB $和查詢

MongoDB $和查詢

江戶川亂折騰 2022-06-09 16:20:09
我想要在 MongoDB 中執(zhí)行以下操作的查詢:文檔返回profession.organization的屬性可以是字符串“bank”。文檔返回profession.city的屬性可以是字符串“NY”。但是,當文件中“profession.organization”為“bank”且“profession.city”為“NY”時,必須排除該文件??偠灾?,一個文件可以有城市“NY”或組織“銀行”,但如果它同時具有這些屬性,則必須排除。到目前為止我所嘗試的。 targetObj = await db.db(MDBC.db).collection(MDBC.pC)        .aggregate([{            $match: {                $and: [                { 'profession.organization': { $ne: 'bank' } },                 { 'profession.city': { $ne: 'NY' } }              ]            }        }, { $sample: { size: 1 } }]).next();
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

試試這個:


targetObj = await db.db(MDBC.db).collection(MDBC.pC)

 .aggregate([

  {

    $match: {

      $and: [

        {

          $or: [

            { "profession.organization": "bank" },

            { "profession.city": "NY" }

          ]

        },

        {

          $or: [

            {

              "profession.organization": "bank",

              "profession.city": { $ne: "NY" }

            },

            {

              "profession.organization": { $ne: "bank" },

              "profession.city": "NY"

            }

          ]

        }

      ]

    }

  },

  { $sample: {size: 1} } ]).next();


查看完整回答
反對 回復 2022-06-09
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

不幸的是,在撰寫本文時,MongoDB 中沒有匹配的運算符來幫助解決這個問題。$or但是您可以通過組合and運算符來獲得類似的結果$ne。為您的查詢嘗試這樣的事情:


const query = {

  $or: [

    {

      // Include all non-banks outside of NY.

      'profession.city': { $ne: 'NY' },

      'profession.organization': { $ne: 'bank' }

    },

    {

      // Include all non-banks in NY.

      'profession.city': 'NY',

      'profession.organization': { $ne: 'bank' }

    },

    {

      // Include all banks outside of NY.

      'profession.city': { $ne: 'NY' },

      'profession.organization': 'bank'

    }

  ]

};


查看完整回答
反對 回復 2022-06-09
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

我認為在接受的答案中使用的查詢可能要短得多。


db.collection.aggregate([

  {

    $match: {

      $or: [

        {

          "profession.organization": "bank",

          "profession.city": {

            $ne: "NY"

          }

        },

        {

          "profession.organization": {

            $ne: "bank"

          },

          "profession.city": "NY"

        }

      ]

    }

  },

  {

    $sample: {

      size: 1

    }

  }

])

我還要說的一件事是,如果您還想包含不具有這兩個屬性中的任何一個的文檔,那么您應該使用它:


db.collection.aggregate([

  {

    $match: {

      $or: [

        {

          "profession.organization": "bank",

          "profession.city": {

            $ne: "NY"

          }

        },

        {

          "profession.organization": {

            $ne: "bank"

          },

          "profession.city": "NY"

        },

        {

          "profession.organization": {

            $ne: "bank"

          },

          "profession.city": {

            $ne: "NY"

          }

        }

      ]

    }

  },

  {

    $sample: {

      size: 1

    }

  }

])

這還將包括文件,如 -


  {

    "profession": {

      "organization": "someBank",

      "city": "notNA"

    }

  }


查看完整回答
反對 回復 2022-06-09
  • 3 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號