如何使用MongoDB查找不在另一个集合中的集合中的项目

时间:2015-03-16 11:46:31

标签: mongodb mongodb-query bigdata database

我想查询我的mongodb以执行2个集合之间的不匹配。 这是我的结构:

CollectionA

_id, name, firstname, website_account_key, email, status

CollectionB:

_id, website_account_key, lifestage, category, target, flag_sistirt

我试图找到B中的项目,其中A中没有行(website_account_key是唯一的,允许在B中为每个A [一对一]找到元素)

我试着这样做:

dataA_ids = db.dataA.find().map(function(a){return a.website_account_key;})

db.dataB.find( { website_account_key: { $nin: [dataA_ids] } } )

但除非我添加了一些应该工作的测试数据,否则我什么也没有。(

以下是我测试的完整代码:

db.products.insert( { item: "card", qty: 15, code:100 } )
db.products.insert( { item: "pass", qty: 15, code:230 } )
db.products.insert( { item: "badge", qty: 15, code:543 } )
db.products.insert( { item: "passX", qty: 15, code:876 } )

db.references.insert( { code:230, ref:"AAZRT"})
db.references.insert( { code:888, ref:"RUBFE"})
db.references.insert( { code:876, ref:"ERHAA"})
db.references.insert( { code:120, ref:"DRETAR"})

codeInProducts = db.products.find().map(function(a){return a.code;})
db.references.find( { code: { $nin: [codeInProducts] } } )

我的目标是检索引用中的行,我找不到产品中的元素(在产品中找不到引用中的行(代码是链接))

0 个答案:

没有答案