mongodb查询从两个表中查找未匹配的数据

时间:2016-01-05 11:14:24

标签: mongodb

我有两张表存储国内和国际新闻媒体的新闻,两张表存储他们的主题关键短语和新闻相关信息。我需要过滤数据,从一个表中删除其他表中不存在的主题关键短语。如何在mongodb中编写查询以有效删除不匹配的标记。有人可以帮忙吗?提前谢谢。

令牌表1

"_id" : ObjectId("565f5aad6a650506d070453e"),
"Token" : "dominion",
"news_id" : "565f27ee6a65051ac86909dc"

令牌表2

"_id" : ObjectId("565c34fb6a650520f0bd21ee"),
"Token" : "charsadda",
"news_id" : "564b31b16a650518d80f9680"

如果第二个表中没有,则需要在令牌表2中找到统治权,而不是删除此文档。

1 个答案:

答案 0 :(得分:1)

首先从第一个集合中找到'Token'的不同值


tokens = db.temptoken1.distinct('Token')

然后传递这些值以使用$ nin condition

删除表2上的操作

db.temptoken2.remove({Token: {$nin: tokens}})

注意:如果在令牌字段

上添加索引,将会有所帮助