Obecnie mam problemy z utworzeniem schematu dla poniższego dokumentu. Odpowiedź z serwera zawsze zwraca wartości pola „trk” jako [Object]. Jakoś nie mam pojęcia, jak to powinno działać, ponieważ próbowałem przynajmniej wszystkich podejść, które miały dla mnie sens ;-)
Jeśli to pomoże, moja wersja Mongoose to 3.6.20 i MongoDB 2.4.7 A zanim zapomnę, fajnie byłoby ustawić ją również jako Index (2d)
Oryginalne dane:
{
"_id": ObjectId("51ec4ac3eb7f7c701b000000"),
"gpx": {
"metadata": {
"desc": "Nürburgring VLN-Variante",
"country": "de",
"isActive": true
},
"trk": [
{
"lat": 50.3299594,
"lng": 6.9393006
},
{
"lat": 50.3295046,
"lng": 6.9390688
},
{
"lat": 50.3293714,
"lng": 6.9389939
},
{
"lat": 50.3293284,
"lng": 6.9389634
}]
}
}
Schemat Mongoose:
var TrackSchema = Schema({
_id: Schema.ObjectId,
gpx: {
metadata: {
desc: String,
country: String,
isActive: Boolean
},
trk: [{lat:Number, lng:Number}]
}
}, { collection: "tracks" });
Odpowiedź z karty Sieć w Chrome zawsze wygląda następująco (to tylko część trk, która jest zła):
{ trk:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
Próbowałem już różnych definicji schematu dla „trk”:
- trk: Schemat.Types.Mixed
- trk: [Schema.Types.Mixed]
- trk: [{type: [Number], index: "2d"}]
Mam nadzieję, że możesz mi pomóc ;-)
trk.lat
iwtrk.lng
html.trk : { type : Array , default : ['item1', 'item2'] }
Miałem podobny problem z mangustą:
W rzeczywistości używałem „type” jako nazwy właściwości w moim schemacie:
Aby uniknąć takiego zachowania, musisz zmienić parametr na:
źródło
Dzięki za odpowiedzi.
Próbowałem pierwszego podejścia, ale nic się nie zmieniło. Następnie próbowałem zarejestrować wyniki. Po prostu drążyłem poziom po poziomie, aż w końcu dotarłem do miejsca, w którym były wyświetlane dane.
Po chwili znalazłem problem: kiedy wysyłałem odpowiedź, konwertowałem ją na ciąg przez
.toString()
.Naprawiłem to i teraz działa znakomicie. Przepraszam za fałszywy alarm.
źródło
Problem, który muszę rozwiązać, to przechowywanie umów zawierających kilka pól (adres, książka, num_of_days, borrower_addr, blk_data), blk_data to lista transakcji (numer bloku i adres transakcji). To pytanie i odpowiedź pomogły mi. Chciałbym udostępnić mój kod, jak poniżej. Mam nadzieję że to pomoże.
źródło