mongodb与此查询等效的是什么:
选择“foo”作为条形,
id
作为“spec”来自tablename
答案 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
}
}])
{ "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);