mongoose为啥搜不出东西?
发布于 10 年前 作者 myylife 4360 次浏览 最后一次编辑是 8 年前 来自 问答

数据库里明明有东西啊,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 []

这是怎么了?

9 回复

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 我按照你的代码,确实是没写进去。但是当我手动在数据库写入的时候,代码是可以查出来的

untitled2.png untitled4.png

chita说的没错,你 名为 pic的collection里有数据,但是 你却在 mpictures 的collection里查找,当然找不到了, 你不是想查找到吗,那就使用 db.mpictures.insert({ url :“http://www.xx.com” }) 向mpictures 插入一条数据, 绝对能找到

@feralclaw

还是搜不到数据,怎么回事?

回到顶部