检查mongodb数组中是否存在值

时间:2016-06-21 11:17:59

标签: javascript arrays mongodb meteor mongodb-query

如何检查Meteor.user()._id数组中是否存在当前"favoritedBy"

如果为true,请打印"Your favorite",如果为false,则打印"Not your favorite"

MongoDB中的文档:

{
  "_id" : "W5WwAZatorDEb6DNP",
  "createdBy" : "aTmb64zNGSyeDYFJZ",
  "favoritedBy" : [ 
      "X594baqWYZiJqA3Qg",
      "fgk234m2dkD229d12"
  ]
}

假设Meteor.user()._id返回X594baqWYZiJqA3Qg

如何对此进行真/假检查?

我尝试了以下内容:

isFavorite: function() {
    var user = Meteor.user()._id;
    return Posts.find({favoritedBy: user});
 }

在模板中:

{{#if isFavorite}}
    Your favorite
{{else}}
    Not your favorite
{{/if}}

但它似乎不起作用,因为它始终返回"Your favorite",即使当前的Meteor用户ID不在数组中。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以使用

isFavorite: function() {
    var user = Meteor.user()._id;
    return Posts.find({favoritedBy: user}).count() > 0 ? true : false;
 }

count()将返回与find()查询匹配的文档计数,然后检查其是否为> 0,并使用ternary operator,如果是,则返回true如果不是,它将返回false