ravendb查询,其中子列表计数=0
我在ravendb中有一个名为documents的对象。这用于存储文件的位置和详细信息 这是对象的类视图:ravendb查询,其中子列表计数=0,ravendb,Ravendb,我在ravendb中有一个名为documents的对象。这用于存储文件的位置和详细信息 这是对象的类视图: public class Document { public string Id { get; set; } public string Name { get; set; } public string Location { get; set; } public string Htmlform { get; set; } public Client
public class Document
{
public string Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public string Htmlform { get; set; }
public Client Client { get; set; }
public IList<Folder> Folders { get; set; }
public IList<Team> Teams { get; set; }
public IList<Users> Users { get; set; }
public Users CreatedBy { get; set; }
public Users LastChangedBy { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime LastChanged { get; set; }
public IList<DocumentElement> DocumentElements { get; set; }
public MimeType MimeType { get; set; }
public DocumentState State { get; set; }
}
那么有没有人知道如何进行这样的查询,这样我就可以得到一个文件的查询结果了。谢谢最后,我终于解决了
var inFolder = await Session.Query<Document>()
.Where(
x =>
x.Folders.Any(a => a.Id == id) && x.Teams.Any() == false && x.Users.Any() == false &&
x.State.Name.StartsWith("Pub")).ToListAsync();
var inFolder=wait Session.Query()
.在哪里(
x=>
x、 文件夹.Any(a=>a.Id==Id)&&x.Teams.Any()==false&&x.Users.Any()==false&&
x、 State.Name.StartsWith(“Pub”).toListSync();
我已经将查询更改为anyisfalse,在每个项/对象上,这也使得索引更加整洁
{
"Name": "logo@1x.png",
"Location": "https://removed.blob.core.windows.net/removed/fffa6220-69a4-48fa-9537-09006666a287.png",
"Htmlform": null,
"Client": {
"Id": "Client-06ec8641-e206-41b4-b211-7c2bce2b9f33",
"Name": "removed",
"ClientEnabled": true
},
"Folders": [
{
"Id": "Folder-4e7eabc5-32e7-4d00-9800-4327aaac823f",
"Name": "Testing",
"DocumentType": {
"Id": "DocumentType-f6e732d0-4fde-4956-981a-26e3d5397661",
"Name": "General Documents",
"Client": {
"Id": "Client-06ec8641-e206-41b4-b211-7c2bce2b9f33",
"Name": "removed",
"ClientEnabled": true
}
}
}
],
"Teams": [], <-- empty as it should be
"Users": [], <-- empty as it should be
"CreatedBy": { removed user object },
"LastChangedBy": { removed user object },
"CreatedDate": "2014-10-29T00:00:00.0000000",
"LastChanged": "2014-10-29T13:36:50.7311474",
"DocumentElements": null,
"MimeType": null,
"State": {
"Id": "DocumentState-b1b35556-acc3-4b07-b4fd-3bb7d6e764d1",
"Name": "Published"
}
}
public Index_Auto_2fDocuments_2fByFolders_IdAndState_NameAndTeams_Count__AndUsers_Count__()
{
this.ViewText = @"from doc in docs.Documents
from docFoldersItem in ((IEnumerable<dynamic>)doc.Folders).DefaultIfEmpty()
select new { Teams_Count__ = doc.Teams[""Count()""], Users_Count__ = doc.Users[""Count()""], Folders_Id = docFoldersItem.Id, State_Name = doc.State.Name }";
this.ForEntityNames.Add("Documents");
this.AddMapDefinition(docs =>
from doc in docs
where string.Equals(doc["@metadata"]["Raven-Entity-Name"], "Documents", System.StringComparison.InvariantCultureIgnoreCase)
from docFoldersItem in ((IEnumerable<dynamic>)doc.Folders).DefaultIfEmpty()
select new {
Teams_Count__ = doc.Teams["Count()"],
Users_Count__ = doc.Users["Count()"],
Folders_Id = docFoldersItem.Id,
State_Name = doc.State.Name,
__document_id = doc.__document_id
});
this.AddField("Teams_Count__");
this.AddField("Users_Count__");
this.AddField("Folders_Id");
this.AddField("State_Name");
this.AddField("__document_id");
this.AddQueryParameterForMap("Id");
this.AddQueryParameterForMap("State.Name");
this.AddQueryParameterForMap("__document_id");
this.AddQueryParameterForReduce("Id");
this.AddQueryParameterForReduce("State.Name");
this.AddQueryParameterForReduce("__document_id");
}
var inFolder = await Session.Query<Document>()
.Where(
x =>
x.Folders.Any(a => a.Id == id) && x.Teams.Any() == false && x.Users.Any() == false &&
x.State.Name.StartsWith("Pub")).ToListAsync();