使用C#驱动程序(Samus)为MongoDB实现“$或”

时间:2010-11-27 03:17:53

标签: c# mongodb driver

请在C#中给我一些查询示例 用“$或”逻辑。 我正在使用C#驱动程序, Samus撰写(https://github.com/samus/mongodb-csharp)......

1 个答案:

答案 0 :(得分:2)

如果你有一个类型化的集合(在这个例子中为Person类型),你可以使用Linq进行OR:

var mongo = new Mongo("Server=localhost:27017");
mongo.Connect();

List<Person> people = mongo["dbName"].GetCollection<Person>("people").Linq().Where(x => x.Age == 21 || x.Age == 35).ToList();

mongo.Disconnect();

目前不会使用“$或”运算符(它会使用||的JavaScript,请参阅JavaScript模式in this wiki page)。

如果你真的想使用“$或”运算符,你可以建立一个查询文档并将一系列条件传递给“$或”运算符:

var mongo = new Mongo("Server=localhost:27017");
mongo.Connect();

var query = new Document
{
    {"$or", new Document[] { new Document("Age", 21), new Document("Age", 35) } }
};
Document people = mongo["dbName"].GetCollection("people").Find(query);

mongo.Disconnect();