找到所有标签的位置,没有标签

时间:2016-05-17 15:23:43

标签: mongodb mongoose

我有一个故事集合,每个故事都有标签:

var tweets = <%= tweets %>;
var json = JSON.parse(tweets.replace(/&#34;/g, '\"'));

for (var t in json) {
  var row = $('<row></row>');
  row.append('<th style="border:1px solid black">' + t + '</th><td style="border:1px solid black">' + json[t][0]+ '</td>');
  $("#tweetTable").append(row);
}

我正在尝试选择包含所有标记var StorySchema = new Schema({ id : { type : Number, unique : true, }, name : String, tags : [{ id : Number, name : String, url : String, }], }); 且没有标记[{id:1},{id:2},{id:3}]

的所有故事

我最接近的是:

{id:4},{id:5}

但似乎{ tags : { $all:[{ $elemMatch : { id: 1 } }, { $elemMatch : { id: 2 } }, { $elemMatch : { id: 3 } }], $nin : [{ id : 4 }, { id : 5 }] } } 部分没有做到这一点。

另外,我不清楚我为什么需要在选择器的$nin部分使用$elemMatch。如果我把它留下来,我就没有结果。任何澄清将不胜感激:))

1 个答案:

答案 0 :(得分:0)

我想我找到了解决方案:

underscore.map()

或者,编写一个构建选择器的js函数(使用var selector = { tags : { $all : _.map(includeTagIds, function(includeTagId){ return { $elemMatch : { id : includeTagId } }; }), $not : { $elemMatch : { id: { $in : excludeTagIds } } } } }; ):

> Contact: <sip:1000@121.xxx:53753;ob>