Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MONGODB WHERE条件中使用CASE语句_Mongodb_Mongoose_Mongodb Query - Fatal编程技术网

如何在MONGODB WHERE条件中使用CASE语句

如何在MONGODB WHERE条件中使用CASE语句,mongodb,mongoose,mongodb-query,Mongodb,Mongoose,Mongodb Query,我是Mongo Db的新手,希望能在此查询中得到一些帮助 DATA: { "_id" : ObjectId("5ba2442e9b75ee04d429ed34"), "RESOURCE_ID" : "100-101", "CITY_ID" : "200-1239", "EVENT" : "0" }, { "_id" : Obje

我是Mongo Db的新手,希望能在此查询中得到一些帮助

 DATA:

       {
            "_id" : ObjectId("5ba2442e9b75ee04d429ed34"),
            "RESOURCE_ID" : "100-101",
            "CITY_ID" : "200-1239",
            "EVENT" : "0"
        },
        {
            "_id" : ObjectId("5ba2442e9b75ee04d429ed34"),
            "RESOURCE_ID" : "100-101",
            "CITY_ID" : "200-1239",
            "EVENT" : "2"
        },
        {
            "_id" : ObjectId("5ba2442e9b75ee04d429ed34"),
            "RESOURCE_ID" : "100-101",
            "CITY_ID" : "200-1239",
            "EVENT" : "3"
        },{
            "_id" : ObjectId("5ba2442e9b75ee04d429ed34"),
            "RESOURCE_ID" : "100-101",
            "CITY_ID" : "800-1239",
            "EVENT" : "1"
        }
我使用匹配条件编写了以下聚合管道 “CITY_ID:“200-1239”和“RESOURCE_ID:“100-101”,但如何更改事件时的“1”然后是“I”(或)事件时的“2”然后是“U”(或)事件时的“3”然后是“D”(或)事件时的“0”然后是“V”任何人请建议我

db.COLLECTION.aggregate([{

{
        $match:{
            $and:[{"CITY_ID" : "200-1239","RESOURCE_ID" : "100-101"}]
        }
    },

 ])
预期产出:

{
            "_id" : ObjectId("5ba2442e9b75ee04d429ed34"),
            "RESOURCE_ID" : "100-101",
            "CITY_ID" : "200-1239",
            "EVENT" : "V"
        },
        {
            "_id" : ObjectId("5ba2442e9b75ee04d429ed34"),
            "RESOURCE_ID" : "100-101",
            "CITY_ID" : "200-1239",
            "EVENT" : "U"
        },
        {
            "_id" : ObjectId("5ba2442e9b75ee04d429ed34"),
            "RESOURCE_ID" : "100-101",
            "CITY_ID" : "200-1239",
            "EVENT" : "D"
        },{
            "_id" : ObjectId("5ba2442e9b75ee04d429ed34"),
            "RESOURCE_ID" : "100-101",
            "CITY_ID" : "200-1239",
            "EVENT" : "I"
        }

您可以在
$project
中使用
$switch

db.COLLECTION.aggregate([

      {
  $match: {
    $and: [{ "CITY_ID": "200-1239", "RESOURCE_ID": "100-101" }]
  }
},

{
  "$project": {
    "RESOURCE_ID": 1,
    "CITY_ID" : 1,
    "EVENT": {
      $switch: {
        branches: [
          { case: { "$eq": ["$EVENT", "1"] }, then: "I" },
          { case: { "$eq": ["$EVENT", "2"] }, then: "U" },
          { case: { "$eq": ["$EVENT", "3"] }, then: "D" },
          { case: { "$eq": ["$EVENT", "0"] }, then: "V" }
        ],
        default: "Z" //You can set default
      }
    }

    }
  } ])

参考链接:

Hi IftekharDani我正在尝试此代码一些trow错误意外标记]@IftekharDani@Naresh请检查,我已经更新了我的答案。问题只是缺少括号。谢谢@IftekharDani,但如何删除默认值您也可以使用
default:$EVENT“
ok谢谢@IftekharDani