数据库里明明有东西啊,log出来的为何是空的数组 []
数据库中有东西的
mongo 127.0.0.1:27017 MongoDB shell version: 2.6.1 connecting to: 127.0.0.1:27017/test
show collections pic system.indexes db.pic.find() { “_id” : ObjectId(“55532b9e2817911cc4a15cee”), “url” : “http://img0.bdstatic.com/img/image/shouye/touxiangwise01.jpg” }
搜不出东西
var db=require("mongoose");
db.connect('mongodb://localhost/pic');
var pic_schema = new db.Schema({
url: String
});
pic_schema.methods.findPic = function(cb) {
return this.model('MPicture').find( cb);
}
var MPicture=db.model('MPicture', pic_schema);
MPicture.find({},function(err,pics) {
console.info('result found');
});
var pic = new MPicture({});
pic.findPic(function(err, result) {
console.log(err);
console.log(result);
});
结果
result found null []
这是怎么了?
pic.findPic(function(err, pics){ //console err 下看看有没有报错 console.log(pics); });
@CarlosRen err值为Null
创建一个对象后应该调用save吧?保存成功之后再去查找应该就有了
var pic = new Picture({});
pic.save( function( err, result ) {
pic.findPic( function() {
} )
} );
@crystaldust 数据库中有东西的,不需要通过save写数据,我在问题中添加了更多细节,可否看下,为何搜不出数据呢?
数据库 collection 名有错 你mongoose 注册名是 MPicture 数据库里 是pic
@chita 可否帮改下代码啊,按你的方法修改多次,报错了…
@myylife 我按照你的代码,确实是没写进去。但是当我手动在数据库写入的时候,代码是可以查出来的
chita说的没错,你 名为 pic的collection里有数据,但是 你却在 mpictures 的collection里查找,当然找不到了, 你不是想查找到吗,那就使用 db.mpictures.insert({ url :“http://www.xx.com” }) 向mpictures 插入一条数据, 绝对能找到
还是搜不到数据,怎么回事?