baanause
Goto Top

Mongodb Daten aus Array auslesen

Habe folgendes Programm geschrieben um eine MongoDB auszulesen.


var mongoose = require('mongoose');  
mongoose.Promise = global.Promise;
var uri = 'mongodb://test:xxyz@xxx.xxx.xxx.xxx/test_test';  
var xspromise = mongoose.CreateConnection(uri,{
  use MongoClient: true,
  socketTimeOutMS: 0,
  keepAlive: true,
  reconnectTries: 30
});

xspromise.then(function(db){
 db.collection('daten').find({test_nr:'12345'}).sort({_id: -1}).limit(1).toArray(function(err,result){  
 console.log(result);

 var arr = ;   // 
 arr = result.slice(0,1);

var wert = arr.dat1;
console.log(wert);

db.close;
});

Als Ergebnis bekomme ich ein Array wie folgt:
[ { _id: d344352525...,
test_nr: '12345',
createtd: ....,
dat1: xyz,
dat2: 12344 } ]
[ { _id: d344352525...,
test_nr:' 12345',
createtd: ....,
dat1: xyz,
dat2: 12344 } ]
undefined;
Wie bekomme ich den Wert von dat1 aus der Datenbank in die Variable wert geschrieben?

Wenn ich den Code mit findOne schreibe, dann sieht das Ergebnis so aus:
[ _id: d344352525...,
test_nr:' 12345',
createtd: ....,
dat1: xyz,
dat2: 12344 ]
[ _id: d344352525...,
test_nr:' 12345',
createtd: ....,
dat1: xyz,
dat2: 12344 ]
xyz
Also ohne die geschweiften Klammern und damit so, wie das eigentlich brauche. Allerdings klappt dann die Rückwärtssuche nicht so richtig und ich brauche nur den letzten Tabelleneintrag.
Ihr habt sicherlich bemerkt, dass ich mich erst in die Sprache und diese Datenbank einarbeite, daher bin ich für jede Anmerkung zum Code, Ergebnis, usw sehr dankbar.

Content-ID: 353325

Url: https://administrator.de/contentid/353325

Ausgedruckt am: 14.11.2024 um 21:11 Uhr

134464
Lösung 134464 31.10.2017 aktualisiert um 15:17:01 Uhr
Goto Top
Wie bekomme ich den Wert von dat1 aus der Datenbank in die Variable wert geschrieben?
Nun, da du ein Array geliefert bekommst musst du den Arrayindex angeben
var wert = arr.dat1;
Wenn es vom letzten Array Element sein soll
var wert = arr[arr.length -1].dat1;
Wenn du hier natürlich mit slice arbeitest kommst du auch so an das letzte Element eines Arrays
var el = arr.slice(-1);
var wert = el.dat1;