0

这是我的员工使用的

var client = new MongoClient(System.Configuration.ConfigurationManager.AppSettings["MongoDbServer"]);
var server = client.GetServer();
MongoDatabase db = server.GetDatabase("Edbert");
var collection = db.GetCollection("testInstagram");

var query = Query.And(Query.Not(Query.Or(Query.Size("PossibleInstagramIDs", 1), Query.Size("PossibleInstagramIDs", 0))),Query.EQ("InstagramID",BsonNull.Value));

我认为这部分很丑:

var query = Query.And(Query.Not(Query.Or(Query.Size("PossibleInstagramIDs", 1), Query.Size("PossibleInstagramIDs", 0))),Query.EQ("InstagramID",BsonNull.Value));

他尝试做的是将查询设置为在可能的 InstagramID 的大小大于 1 时返回 true。

他应该怎么做?

4

1 回答 1

0

我会通过创建一个类来使集合成为强类型TestInstagram,然后使用LINQ

您的TestInstagram课程将如下所示:

public class TestInstagram
{
    public ObjectId Id { get; set; }
    public IEnumerable<int> PossibleInstagramIDs { get; set; }
    public int InstagramID { get; set; }
}

这将允许您简单地查询如下:

var collection = _mongoDatabase.GetCollection<TestInstagram>("testInstagram");
collection.AsQueryable().Where(ti => ti.PossibleInstagramIDs.Count() > 1 && ti.InstagramID == null);
于 2013-09-18T12:20:09.780 回答