簡體   English   中英

有人可以幫我寫等效於SQL的C#mongo Query嗎

[英]Can some one help me to write C# mongo Query equivalent to SQL

C#Mongo錯誤:

Unsupported filter: ({document}{FILEDATE} > {document}{SPLITDATE}).

SQL查詢:

SELECT * FROM CURRENT AS C WHERE C.FILEDATE > C.SPLITDATE

C#代碼:

db.GetCollection<CollectionName>().AsQueryable()
.Where(a => a.fileDate > a.splitDate)
.Select(b => b.Name).Distinct().ToList()

我不確定是否有更好的方法來實現它,但是我通常使用Find語法,因為它看起來比AsQueryable()更通用-但是,可能只是我一個人。 嘗試這個:

var collection = db.GetCollection<CollectionObject>(CollectionName);
collection.Find(
    (FilterDefinition<CollectionObject>)"{ $where : \"this.fileDate > this.splitDate\" }"
)
.Project<CollectionObject>(Builders<CollectionObject>.Projection.Include(c => c.Name))
.ToEnumerable()
.Select(c => c.Name)
.Distinct()
.ToList()

這樣的事情應該起作用,盡管我相信$ where可能不是很有效。 請注意,where中的名稱是文檔中的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM