No momento, estou tendo problemas para criar um esquema para o documento abaixo. A resposta do servidor sempre retorna os valores do campo "trk" como [Objeto]. De alguma forma, não tenho ideia de como isso deve funcionar, pois tentei pelo menos todas as abordagens que faziam sentido para mim ;-)
Se isso ajudar, minha versão do Mongoose é 3.6.20 e MongoDB 2.4.7 E antes que me esqueça, seria bom defini-lo também como Índice (2d)
Dados originais:
{
"_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
}]
}
}
Esquema Mongoose:
var TrackSchema = Schema({
_id: Schema.ObjectId,
gpx: {
metadata: {
desc: String,
country: String,
isActive: Boolean
},
trk: [{lat:Number, lng:Number}]
}
}, { collection: "tracks" });
A resposta da guia Rede no Chrome sempre se parece com esta (é apenas a parte trk que está errada):
{ trk:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
Já tentei diferentes definições de esquema para "trk":
- trk: Schema.Types.Mixed
- trk: [Schema.Types.Mixed]
- trk: [{tipo: [Número], índice: "2d"}]
Espero que possa me ajudar ;-)
trk.lat
etrk.lng
em html não funcionará.trk : { type : Array , default : ['item1', 'item2'] }
Tive um problema semelhante com o mangusto:
Na verdade, eu estava usando "tipo" como um nome de propriedade em meu esquema:
Para evitar esse comportamento, você deve alterar o parâmetro para:
fonte
Obrigado pelas respostas.
Tentei a primeira abordagem, mas nada mudou. Então, tentei registrar os resultados. Eu apenas analisei nível por nível, até que finalmente cheguei onde os dados estavam sendo exibidos.
Depois de um tempo, descobri o problema: quando estava enviando a resposta, estava convertendo para uma string via
.toString()
.Consertei isso e agora funciona perfeitamente. Desculpe pelo alarme falso.
fonte
O problema que preciso resolver é armazenar contratos contendo alguns campos (endereço, livro, num_of_days, borrower_addr, blk_data), blk_data é uma lista de transações (número do bloco e endereço da transação). Esta pergunta e resposta me ajudaram. Eu gostaria de compartilhar meu código conforme abaixo. Espero que isto ajude.
fonte