私はちょうどマングースとモンゴーで遊んで始めました。私は次のコードを持っています:Mongoose find()、結果ドキュメントへのアクセス方法
var ninjaSchema = mongoose.Schema({
name: String,
skill: Number
});
var Ninja = mongoose.model('Ninja',ninjaSchema);
module.exports = {
init : function(){
console.log('Connecting to database');
mongoose.connect('mongodb://localhost/mydb');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback() {
console.log('Successfully connected!');
});
},
createNinja : function(name,skill){
var n = new Ninja({name:name,skill:skill});
n.save(function(err,n){
if (err)
console.log('saving failed');
console.log('saved '+ n.name);
});
},
getNinjas : function(){
var res = null;
res = Ninja.findOne({},'name skill',function(err,docs){
if (err)
console.log('error occured in the query');
return 'ninja name: '+docs.name+' ninja skill: '+docs.skill;
});
return res;
}
データベースへのエントリの追加に問題はありませんが、取得に問題があります。私は、全体の仕組みがちょっと混乱しています。私の理解は次の通りです:
oopのクラスのようなスキーマがあります。したがって、データベースのレコードの青写真だけです。モデルはレコードです.OK、もっと多分、私はあなたがモデルにメソッドを追加できることを知っていました。まあ...私は本当にそれらを使用する方法を理解していません。彼らは本当に何かを手がかりにすることができますか?
件名に戻る:findコマンドを実行すると、匿名関数が呼び出され、ドキュメントは結果として正しく表示されますか?どうすればそれらにアクセスできますか?私は解像度を記録した場合、今ので、私は、次を得る:私はNinja.find(...,function(err,docs){ ... })
を使用する場合
{ options: {},
safe: undefined,
_conditions: {},
_updateArg: {},
_fields: { name: 1, skill: 1 },
_geoComparison: undefined,
op: 'findOne',
model:
{ [Function: model]
base:
{ connections: [Object],
plugins: [],
models: [Object],
modelSchemas: [Object],
options: {} },
modelName: 'Ninja',
model: [Function: model],
db:
{ base: [Object],
collections: [Object],
models: {},
replica: false,
hosts: null,
host: 'localhost',
port: 27017,
user: undefined,
pass: undefined,
name: 'mydb',
options: [Object],
_readyState: 1,
_closeCalled: false,
_hasOpened: true,
_listening: true,
_events: [Object],
db: [Object] },
schema:
{ paths: [Object],
subpaths: {},
virtuals: [Object],
nested: {},
inherits: {},
callQueue: [],
_indexes: [],
methods: {},
statics: {},
tree: [Object],
_requiredpaths: [],
options: [Object],
_events: {} },
options: undefined,
collection:
{ collection: [Object],
opts: [Object],
name: 'ninjas',
conn: [Object],
queue: [],
buffer: false } } }
はまた、どのように私は、ドキュメントを谷に行くのですか?または、私の記録を取り出す方法は?
ああ:コードは次のようになります変更により
それ。私はあなたのために素敵な答えを仕掛けていましたが、あなたはそれを得ました。結果を送信するコールバックを渡す必要があります。 – numbers1311407