방금 몽구스와 몽고로 놀기 시작했습니다. 다음 코드를 가지고 있습니다 :몽구스 찾기(), 결과 문서에 액세스하는 방법?
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의 클래스와 같은 스키마가 있으므로 데이터베이스의 레코드에 대한 청사진 만 있습니다. 모델은 모델에 메서드를 추가 할 수 있다는 것을 알았으므로 레코드입니다. 음 ... 나는 그것을 어떻게 사용하는지 정말로 모르겠다. 너 진짜 실마리를 줄 수있어?
제목으로 돌아 가기 : find 명령을 실행할 때 익명의 함수를 호출하고 docs가 결과물이어야합니까? 이제 어떻게 액세스 할 수 있습니까? 또한 나는이 문서 물마루 가서 어떻게 내가 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