我有两张表存储国内和国际新闻媒体的新闻,两张表存储他们的主题关键短语和新闻相关信息。我需要过滤数据,从一个表中删除其他表中不存在的主题关键短语。如何在mongodb中编写查询以有效删除不匹配的标记。有人可以帮忙吗?提前谢谢。
令牌表1
"_id" : ObjectId("565f5aad6a650506d070453e"),
"Token" : "dominion",
"news_id" : "565f27ee6a65051ac86909dc"
令牌表2
"_id" : ObjectId("565c34fb6a650520f0bd21ee"),
"Token" : "charsadda",
"news_id" : "564b31b16a650518d80f9680"
如果第二个表中没有,则需要在令牌表2中找到统治权,而不是删除此文档。
答案 0 :(得分:1)
首先从第一个集合中找到'Token'的不同值
tokens = db.temptoken1.distinct('Token')
然后传递这些值以使用$ nin condition
删除表2上的操作
db.temptoken2.remove({Token: {$nin: tokens}})
注意:如果在令牌字段
上添加索引,将会有所帮助