2016-07-26 12 views
-1

Ich möchte mit Mungo js eine Sammlung von Kätzchen mit diesem Dokument {Name: "Mike"} erstellen erstellen.mongoose js wird nicht Abfrage Wert

Nach dem Erstellen dieses Dokuments möchte ich seinen Wert drucken.

Ich schrieb diesen Code unten.

2 Probleme:.

  1. dieser Code (was bedeutet, endet nicht, wenn ich node file.js die cmd Linie bleibt offen (stucked schrieb) und kein Rückgabewert ist return (Endlosschleife wie in einem Server)

  2. der Code nicht den Wert von "mike" druckt. gerade diese doucument erstellen ...

, was mache ich falsch?

dank

var mongoose = require('mongoose'); 

var url = 'mongodb://Yotam:[email protected]:23475/small-talkz'; 
mongoose.connect(url); 

var kittySchema = mongoose.Schema({ 
    name: String 
}); 

var Kitten = mongoose.model('kitten', kittySchema); 

Kitten.create({ name: "mike" }, function (err, small) { 
    if (err) return handleError(err); 

}); 

Kitten.findOne({ }), function(err, docs){ 
    console.log(docs.name); 
}; 
return 1; 
+0

der silent -1 stackoverflow Geist schlägt wieder .. seufz ... kann jemand bitte helfen? Ich habe versucht, in der Mangusten-Dokumentation Hilfe zu finden, und bin dabei zu kurz gekommen. – Matoy

Antwort

1
newKitten = { name: "mike" }; 

Kitten.create(newKitten, function (err, kitty) { 
    if { 
     (err) return handleError(err); 
    } else { 
     console.log(kitty); //OR console.log(kitty.name); 
    } 
}); 

Kitten.findOne({name: "mike"}).exec(function(e, kitten) { 
    if (e) { 
     console.log(e) 
    } else { 
     console.log(kitten.name) 
    } 
}); 
+0

Ich möchte diesen Wert per Abfrage drucken (alias find (....)). nicht durch create (...) – Matoy

0

das Problem war {für jedermann, dessen Intersted (und vielen Dank für herkou)}, dass ich nicht mit dem Befehl exec verwendet haben ..

Dies funktioniert:

Kitten.findOne({ name: "mike"}).exec(function(err, docs){ 
    console.log(docs.name); 
    return; 
}); 

Update:

hatte auch ein Problem mit race conditions ... das create des documnet wurde beim Aufruf der Anfrage nicht beendet. deshalb habe ich mich nicht betäubt.

Verwendung dieses neuen Code:

var mongoose = require('mongoose'); 

var url = 'mongodb://Yotam:[email protected]:23475/small-talkz'; 
mongoose.connect(url); 

var kittySchema = mongoose.Schema({ 
    name: String, 
    color:String 
}); 

var Kitten = mongoose.model('Kitten', kittySchema); 

var newKitten = { name: "mike", color:"white" }; 

Kitten.create(newKitten, function (err, kitty) { 
    if (err) { 
     return handleError(err); 
    } else { 
     call_query(); 
    } 
}); 


var call_query= function(){ 
    var query= Kitten.findOne({ name: "mike"}); 
    query.exec(function(err, docs){ 
     console.log(docs.color); 
     return; 
    }); 
} 

return 1; 

jetzt brauche ich verstehe nur, warum dieses Skript nicht zu Ende.