Je rencontre actuellement des problèmes pour créer un schéma pour le document ci-dessous. La réponse du serveur renvoie toujours les valeurs du champ "trk" sous la forme [Object]. D'une manière ou d'une autre, je n'ai aucune idée de comment cela devrait fonctionner, car j'ai essayé au moins toutes les approches qui avaient du sens pour moi ;-)
Si cela aide, ma version Mongoose est 3.6.20 et MongoDB 2.4.7 Et avant que j'oublie, ce serait bien de le définir également comme Index (2d)
Données d'origine:
{
"_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
}]
}
}
Schéma de la mangouste:
var TrackSchema = Schema({
_id: Schema.ObjectId,
gpx: {
metadata: {
desc: String,
country: String,
isActive: Boolean
},
trk: [{lat:Number, lng:Number}]
}
}, { collection: "tracks" });
La réponse de l'onglet Réseau dans Chrome ressemble toujours à ceci (ce n'est que la partie trk qui est fausse):
{ trk:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
J'ai déjà essayé différentes définitions de schéma pour "trk":
- trk: Schema.Types.Mixed
- trk: [Schema.Types.Mixed]
- trk: [{type: [Number], index: "2d"}]
J'espère que vous pourrez m'aider ;-)
trk.lat
ettrk.lng
en html ne fonctionnera pas.trk : { type : Array , default : ['item1', 'item2'] }
J'ai eu un problème similaire avec la mangouste:
En fait, j'utilisais "type" comme nom de propriété dans mon schéma:
Pour éviter ce comportement, vous devez changer le paramètre en:
la source
Merci pour les réponses.
J'ai essayé la première approche, mais rien n'a changé. Ensuite, j'ai essayé d'enregistrer les résultats. J'ai juste exploré niveau par niveau, jusqu'à ce que j'arrive enfin à l'endroit où les données étaient affichées.
Au bout d'un moment, j'ai trouvé le problème: lorsque j'envoyais la réponse, je la convertissais en une chaîne via
.toString()
.J'ai corrigé cela et maintenant cela fonctionne à merveille. Désolé pour la fausse alarme.
la source
Le problème que je dois résoudre est de stocker des contrats contenant quelques champs (adresse, carnet, num_of_days, borrower_addr, blk_data), blk_data est une liste de transactions (numéro de bloc et adresse de transaction). Cette question et réponse m'a aidé. Je souhaite partager mon code comme ci-dessous. J'espère que cela t'aides.
la source