2012-05-18 88 views
-1

我有两个集合A和B 为A包含比较字段值MongoDB中

{ 
    "_id" : ObjectId("4fb2143af31dfd122ce39c4b"), 
    "Name" : "Freelander 2.2D", 
    "Manufacture" : "Landrover" 
} 

和B,

{ 
    "_id" : ObjectId("4fb21439f31dfd122ce39c4a")  
    "Name" : "Rangerover", 
    "Manufacture" : "Landrover", 

} 

让我知道如何检查字段值相同(这里是“名称”有不同的值)在C#驱动程序中的A和B。如果它发现我需要更新的差异

请在这里提供一些信息,在此先感谢

回答

1

您无法执行涉及多个集合的查询。一个查询 - 一个集合,时期。

0

好,塞尔吉奥大多是正确的(我看不到的方式来做到这一点使用语言驱动程序),但它使用的外壳是可能的:

var a_in_b = function(o){ 
    var numB = db.B.find({Name:o.Name}).count(); 
    if (numB > 0) print (o.Name + " is in both A and B"); 
} 

> db.A.find() 
{ "_id" : ObjectId("4fb2143af31dfd122ce39c4b"), "Name" : "Freelander 2.2D", "Manufacture" : "Landrover" } 
> db.B.find() 
{ "_id" : ObjectId("4fb667d60569d84fec6ef57e"), "Name" : "Rangerover", "Manufacture" : "Landrover" } 
{ "_id" : ObjectId("4fb66a830569d84fec6ef57f"), "Name" : "Freelander 2.2D", "Manufacture" : "Landrover" } 
> db.A.find().forEach(a_in_b); 
Freelander 2.2D is in both A and B 

如果您的要求是管理员相关一,这可能是你在找什么。如果你想从C#驱动程序(如SQL连接,我想)这样做,那么不,你不能。