比较MongoDB中的字段值

时间:2012-05-18 12:47:14

标签: c# mongodb indexing

我有两个集合A和B. 对于A包含

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

和B,

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

}

让我知道如何检查C#驱动程序中A和B的字段值(此处为“Name”具有不同的值)。如果发现差异,我也需要更新

请提前了解一下

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

嗯,Sergio大多是正确的(我看不到使用语言驱动程序的方法),但是可以使用shell:

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连接,我猜),那么不,你不能。