मैं है निम्नलिखित दस्तावेज़ बुलाया आरक्षण:RavenDB में नेस्टेड जानकारी कैसे पूछें?
{
"CustomerId": 1,
"Items": [
{
"EmployeeId": "employees/1",
"StartTime": "2011-08-15T07:20:00.0000000+03:00",
"EndTime": "2011-08-15T07:40:00.0000000+03:00"
},
{
"EmployeeId": "employees/1",
"StartTime": "2011-08-15T07:40:00.0000000+03:00",
"EndTime": "2011-08-15T09:10:00.0000000+03:00"
},
{
"EmployeeId": "employees/3",
"StartTime": "2011-08-16T07:20:00.0000000+03:00",
"EndTime": "2011-08-16T11:35:00.0000000+03:00"
}
]
"ReservedAt": "2011-10-20T15:28:21.9941878+03:00"
}
इसके अलावा मैं निम्नलिखित प्रक्षेपण वर्ग है
public class ReservationItemProjection
{
public string ReservationId { get; set; }
public string CustomerId { get; set; }
public string EmployeeId { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
}
सूचकांक और क्वेरी मुझे किस प्रकार लिख सकता हूँ अगर मैं ReservationItemProjections मिलान लगाना चाहते हैं ? उदा .:
// invalid example query:
var matches = docs.Query<ReservationItemProjection,
ReservationItemProjectionsIndex>()
.Where(x =>
x.EmployeeId == "employees/1" &&
x.StartTime >= minTime &&
x.EndTime <= maxTime)
.ToList();
कृपया ध्यान दें, मैं आरक्षण दस्तावेजों की एक सूची है, लेकिन ReservationItemProjection वस्तुओं की एक सूची प्राप्त करने की इच्छा नहीं है। documentation कहता है:
लेकिन जब किसी विशेष क्वेरी से मेल खाने वाले दस्तावेज़ प्राप्त करना उपयोगी होता है, तो हम उससे बेहतर कर सकते हैं। दस्तावेजों को स्वयं प्राप्त करने के बजाय, मैं पूर्ण दस्तावेज प्राप्त किए बिना सीधे सूचकांक से मूल्य प्राप्त करना चाहता हूं।
public class ReservationItemProjectionsIndex : AbstractIndexCreationTask<Reservation, ReservationItemProjection> { public ReservationItemProjectionsIndex() { Map = reservations => from reservation in reservations from item in reservation.Items select new { ReservationId = reservation.Id, CustomerId = reservation.CustomerId, item.EmployeeId, item.StartTime, item.EndTime }; Store(x => x.ReservationId, FieldStorage.Yes); Store(x => x.CustomerId, FieldStorage.Yes); Store(x => x.EmployeeId, FieldStorage.Yes); Store(x => x.StartTime, FieldStorage.Yes); Store(x => x.EndTime, FieldStorage.Yes); } }
किसी तरह मैं क्वेरी और सूचकांक काम कर नहीं मिल सकता है: यह या तो एक अपवाद के बारे में को ReservationItemProjection से कास्ट करने के लिए सक्षम नहीं होने के फेंकता
मैं पहले से ही इस तरह एक सूचकांक का उपयोग कर की कोशिश की है आरक्षण या, जब मैं आरक्षण ItemProjection ऑब्जेक्ट्स प्राप्त करने में सक्षम हूं, तो उनके पास होगा सभी आरक्षणों में सभी आइटम शामिल हैं जिनमें एक मिलान आइटम भी है, यहां तक कि हालांकि मेरी क्वेरी में कहां क्लॉज x.EmployeeId == "कर्मचारी/1 "।
सारांश: आवश्यक सूचकांक क्या है? क्या इंडेक्स को केवल एक नक्शा क्लॉज की आवश्यकता होती है या कम या ट्रांसफॉर्म रिजल्ट भी चाहिए? मैं सी # में क्वेरी कैसे लिखूं?
यही परिणाम मैं देख रहा था दे दी है के लिये! AsProjection एक उन्नत सुविधा माना जाता है? Google केवल [ravendb AsProjection] (http://www.google.com/search?q=ravendb+asprojection) पर परिणामों के दो पृष्ठ लौटाता है। ऐसा लगता है कि फीचर को कुछ दस्तावेज की आवश्यकता होगी? –
धन्यवाद, यह उत्तर आज मेरे जीवन को बचाओ! –