Ho la seguente struttura:Proiezione di MongoDB documento secondario utilizzando C conducente # .NET 2.0
public class Category
{
[BsonElement("name")]
public string CategoryName { get; set; }
[BsonDateTimeOptions]
[BsonElement("dateCreated")]
public DateTime DateStamp { get; set; }
[BsonElement("tasks")]
public List<TaskTracker.Task> Task { get; set; }
}
public class Task
{
[BsonElement("name")]
public string TaskName { get; set; }
[BsonElement("body")]
public string TaskBody { get; set; }
}
Sto cercando di interrogare un Category
per ottenere tutti i valori TaskName
e poi tornare a un elenco da visualizzare in una casella di riepilogo.
Ho provato con questa query:
var getTasks = Categories.Find<Category>(x => x.CategoryName == catName)
.Project(Builders<Category>.Projection
.Include("tasks.name")
.Exclude("_id"))
.ToListAsync()
.Result;
Ma che cosa ottenere restituito è: {"tasks": [{"name: "test"}]}
.
Esiste comunque la restituzione del valore di stringa?
Ho provato la tua query e ho provato ad aggiungerla a un 'Elenco>' ma ciò che viene restituito è: '{System.Linq.Enumerable.WhereSelectEnumerableIterator } ' –
Lynchy
Sì, che è convertibile in un oggetto IEnumerable. Potresti fornire altro codice su cosa stai facendo? –
Penso di aver trovato una soluzione. Ho restituito la query 'taskNames' in questo modo:' return taskNames [0] .ToList(); 'e sembrava funzionare. Questa è una buona pratica? – Lynchy