Mongodb在查询中创建别名

时间:2011-08-17 13:11:48

标签: mongodb

mongodb与此查询等效的是什么:

  

选择“foo”作为条形,id作为“spec”来自tablename

3 个答案:

答案 0 :(得分:12)

可以使用$ project:

创建具有给定名称和从另一个字段获取的值的新字段
{
  "_id" : 1,
  title: "abc123",
  isbn: "0001122223334",
  author: { last: "zzz", first: "aaa" },
  copies: 5
}

以下$ project阶段添加了新字段isbn,lastName和copiesSold:

db.books.aggregate(
   [
      {
         $project: {
            title: 1,
            isbn: {
               prefix: { $substr: [ "$isbn", 0, 3 ] },
               group: { $substr: [ "$isbn", 3, 2 ] },
               publisher: { $substr: [ "$isbn", 5, 4 ] },
               title: { $substr: [ "$isbn", 9, 3 ] },
               checkDigit: { $substr: [ "$isbn", 12, 1] }
            },
            lastName: "$author.last",
            copiesSold: "$copies"
         }
      }
   ]
)

http://docs.mongodb.org/manual/reference/operator/aggregation/project/#pipe._S_project

答案 1 :(得分:2)

您可以使用任何运算符,例如toUpper或toLower或concat或您认为可以使用的任何其他运算符,并创建别名。

实施例: 在以下示例中,created_time是集合中的字段。 (我对语法不好,所以你可以纠正它,但这是方法)

{$project {
"ALIAS_one" : {"$concat" : "$created_time"},
"ALIAS_two" : {"$concat" : "$created_time"},
"ALIAS_three" : {"$concat" : "$created_time"}
}}

因此,以这种方式使用运算符,您可以创建尽可能多的别名。

答案 2 :(得分:0)

你可以使用它,也许帮助

数据库数据

db.zhb_test.aggregate(
[{
    $group: {
        _id: {
            $dateToString: {
                format: "%Y-%m",
                date: "$lastmodified"
            }
        },
        count: {
            $sum: 1
        }
    }
},
{
    $project: {
        "month": "$_id",
        count: 1,
        "_id": 0
    }
}])

mongo命令

{ "count" : 2, "month" : "2018-02" }
{ "count" : 1, "month" : "2018-03" }

结果

mRotation = getRotation();
mCamera.setDisplayOrientation(mRotation);

Camera.Parameters parameters = mCamera.getParameters();
parameters.setRotation(mRotation);
mCamera.setParameters(parameters);