Domanda
Questa potrebbe essere una domanda stupida, ma come io sono abbastanza nuovo a Raven DB ho intenzione di coraggio di chiedere.
Immaginate Ho il seguente:
- un Corvo DB popolato con un certo numero di istanze dell'oggetto "EventData".
- Ogni istanza EventData ha un MessageId e un timestamp.
- apparirà la MessageId due volte nella lista, una volta per quando il messaggio è stato inviato e l'altro per quando è stato ricevuto.
Quindi, per questo scenario mi piacerebbe fare un auto-referenziale unirsi sul tavolo e cercare l'inizio / fine coppie EVENTDATA basate su MessageId, che ho potuto quindi utilizzare il campo timestamp di ciascuna per calcolare la differenza di tempo tra i due eventi.
ho pensato che il seguente codice avrebbe funzionato, ma ottengo un " Metodo non supportato: SelectMany ". Errore
var mexEvent = from startEventData in session.Query<EventData>()
from endEventData in session.Query<EventData>()
where startEventData.MessageId == endEventData.MessageId
select new { MessageId = startEventData.MessageId, Latency = (endEventData.EventTime - startEventData.EventTime).TotalMilliseconds };
foreach (var eventDataItem in mexEvent)
Console.WriteLine("MessageId: " + eventDataItem.MessageId + ", Latency: " + eventDataItem.Latency);
Ho bisogno di questo per una demo interno in modo non c'è bisogno di essere di fantasia, solo funzionale. Qualcuno può aiutarmi a capire come unire due documenti nello stesso database?
Grazie!
Soluzione
Dean, Non si può fare quel tipo di cose in una query, ma si può fare questo in una mappa / ridurre operazione molto facilmente