给出格式数据集:
{
"_id" : ObjectId("4f16fc97d1e2d32371003e27"),
"subFolder" : "notes_inbox",
"mailbox" : "bass-e",
"filename" : "450.",
"headers" : {
"X-cc" : "",
"From" : "michael.simmons@enron.com",
"Subject" : "Re: Plays and other information",
"X-Folder" : "\\Eric_Bass_Dec2000\\Notes Folders\\Notes inbox",
"Content-Transfer-Encoding" : "7bit",
"X-bcc" : "",
"To" : "eric.bass@enron.com",
"X-Origin" : "Bass-E",
"X-FileName" : "ebass.nsf",
"X-From" : "Michael Simmons",
"Date" : "Tue, 14 Nov 2000 08:22:00 -0800 (PST)",
"X-To" : "Eric Bass",
"Message-ID" : "<6884142.1075854677416.JavaMail.evans@thyme>",
"Content-Type" : "text/plain; charset=us-ascii",
"Mime-Version" : "1.0"
}
}
我需要的-显示字母的最短主题。 我做了什么:
db.getCollection('mails').aggregate([
{"$unwind": "$headers"},
{$group: {_id : "$_id", Subject : {$min :{$min : "$headers.Subject"}}}}
])
输出几乎是正确的,但是我只需要一个主题最短的字母,但是现在我有多个输出,但是我只需要一个字母,最短:
{
"_id" : ObjectId("4f16fe39d1e2d3237107e52d"),
"Subject" : "RE: CONFIDENTIAL"
}
{
"_id" : ObjectId("4f16fe39d1e2d3237107e52c"),
"Subject" : "Gas Hedges"
}
有什么提示吗?
答案 0 :(得分:0)
以下查询将为您提供主题最短(字符串长度最短)的字母。
$group: {
_id: "$mailbox",
length: {
$min: {"lenth":{$strLenBytes:"$headers.Subject"},"sub":"$headers.Subject"}
}
}