如何检查mongodb字段内字段的长度并仅返回其150个第一个字符?
我查看过mongoDB查询字符串或更新运算符,但找不到这个东西。
基本上我有一个博客显然有一些帖子,所以我的帖子文档看起来像这样:
{
"_id" : "XCGCvb8tEbWCbQk7S",
"author" : "Boaz Hoch",
"date" : "Fri, 24 Jan 2014 12:57:49 GMT",
"desc" : "string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-string-",
"metaDesc" : "first post",
"metaKeywords" : "first,post",
"metaTitle" : "first Post",
"title" : "first Post"
}
所以我想做的就是把desc字段,这是帖子的描述并将其切成前150个字符,所以在帖子页面中我只有一小部分整个帖子,并且添加“...”表示“继续阅读”。
答案 0 :(得分:3)
第一种选择:您可以创建模板助手
Template.postsListTemplate.helpers({
shortDesc: function() {
return this.desc.substring(0,150);
}
});
另一种选择是在你的帖子集合上使用转换函数
Posts = new Meteor.Collection("posts", {
transform: function (doc) {
doc.shortDesc = doc.desc.substring(0,150);
return doc;
}
});
更好的选择是在插入/更新期间将短版本(例如shortdesc
)存储在您的文档中作为单独的属性,因此在您的帖子出版物中,您可以发送它,并在您的单个帖子出版物中,可以发送实际的desc
。这将优化您的出版物,并节省将整个帖子内容发送到您只需要前几个字符的列表页面的带宽。