在 mongo 文档中查找数组中的最后一项,并检查其字段是否为某个值
Find the last item in array in mongo document and check if its field is a certain value
我得到了这份文件:
{
_id: "ZApHZeqw98uhwqaey",
borrowerId: "DmGQyqenbNt4eBMia",
isSeenByOther: 1,
lenderId: "JsJyvseqiiazGxRuq",
messages: [{
date: Sun Oct 25 2015 19:40:25 GMT+0100 (CET),
from: "JsJyvseqiiazGxRuq",
text: "Hi there"
},{
date: Sun Oct 25 2015 19:40:35 GMT+0100 (CET),
from: "DmGQyqenbNt4eBMia",
text: "Hey!"
}]
}
我想要做的是只获取一个布尔值,说明 数组中最后一个对象项的字段 from
的值是否为:messages
是当前用户。
我尝试了很多不同的 mongodb 投影,例如 $slice and $position,它基本上插入数组的开头,但对我的情况来说并不理想。
您可以使用下划线的_.last()函数如下:
var doc = MyCollection.findOne({ _id: "ZApHZeqw98uhwqaey" });
var lastElement = _.last(doc.messages);
if ( lastElement.from === Meteor.userId() ){
... do your thing
}
我得到了这份文件:
{
_id: "ZApHZeqw98uhwqaey",
borrowerId: "DmGQyqenbNt4eBMia",
isSeenByOther: 1,
lenderId: "JsJyvseqiiazGxRuq",
messages: [{
date: Sun Oct 25 2015 19:40:25 GMT+0100 (CET),
from: "JsJyvseqiiazGxRuq",
text: "Hi there"
},{
date: Sun Oct 25 2015 19:40:35 GMT+0100 (CET),
from: "DmGQyqenbNt4eBMia",
text: "Hey!"
}]
}
我想要做的是只获取一个布尔值,说明 数组中最后一个对象项的字段 from
的值是否为:messages
是当前用户。
我尝试了很多不同的 mongodb 投影,例如 $slice and $position,它基本上插入数组的开头,但对我的情况来说并不理想。
您可以使用下划线的_.last()函数如下:
var doc = MyCollection.findOne({ _id: "ZApHZeqw98uhwqaey" });
var lastElement = _.last(doc.messages);
if ( lastElement.from === Meteor.userId() ){
... do your thing
}