mongodb与$ elemMatch相反

Bou*_*TAC 3 javascript mongodb mongodb-query

我有这样的集合:

posts = {
  title: 'Hey',
  content: '...',
  authors: [{
    id: 'id',
    name: 'John'
  }, {
    id: 'id2',
    name: 'david'
  }]
};
Run Code Online (Sandbox Code Playgroud)

我想提出一个问题.我找到了$ elementMatch,但我想反其道而行之.

我也找到了$ nin,但如果它适用于mycase我不会.

这是我想要做的:

db.posts.find({
  authors: {
    $notElemMatch: {
      id: 'id'
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

我想找到除了那些人写的那些帖子.

Bla*_*ven 8

您甚至不需要,$elemMatch因为您只有一个字段条件.只需使用$ne:

db.posts.find({ "authors.id": { "$ne": 'id' } });
Run Code Online (Sandbox Code Playgroud)

有一个$not条件,但它确实不需要在这里申请.