2012-05-18 119 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連接,我想)這樣做,那麼不,你不能。