node mongoose 实现查询功能 修改成函数
 发布于 11 年前  作者 kingche  6809 次预览  最后一次回复是 11 年前  来自  
var mongoose = require('mongoose') ;	
var models = require('../models/username') ;
var User = models.User ;
mongoose.connect('mongodb://localhost/mongogroup') ;
function doquery(){
	User.find({"username":"xiaoming"},function(err,doc){
		if(doc) {	
		console.log('found it');
	};
});
}

username.js 中的内容为

var mongoose = require('mongoose') ;	
var Schema = mongoose.Schema ;	
var UserSchema = new Schema({
	username : String ,
}) ;
exports.User = mongoose.model('User',UserSchema) ;

数据库连接没有什么问题,为什么不能实现查询功能了? ps:事实上去掉function doquery(){ }是可以工作的,为什么加上后运行就是没有任何反应!

11 回复
simongfxu

搭车做个广告,操作mongoose必须少不了mongoomise

kingche

@bijiabo 谢谢!已经在看,顺便请教个问题: GroupModel.find({groupname:search_doc},function(err,doc){ console.log(doc); //可以正常打印出整个查询到的文档! console.log(doc.groupname); //但是不可以只打印查询到的文档groupname键的值??? }); 请问我怎样才能只打印出groupname键的值

bijiabo

@kingche 按理来说如果doc!==null的话应该可以打印出doc.groupname的呀 你的doc打印出来内容是什么@@?

bijiabo

@damngoto 哇!看起来很棒>_<

Jayier

function doquery(){ User.find({“username”:“xiaoming”},function(err,doc){ if(doc) { console.log(‘found it’); }) ; } 少了个大括号吧

function doquery(){ User.find({“username”:“xiaoming”},function(err,doc){ if(doc) { console.log(‘found it’); } }) ; }

kingche

@jayself 上面是我写错了,如果真是少了括号的话,运行时会报语法错误的,但是实际运行了什么都没反应!当我断开net stop mongodb服务时,也立即会报错。 事实上去掉function doquery(){ }是可以工作的,为什么加上后运行就是没有任何反应!

kingche

求解决!自己顶!

bnuhero

@kingche

修改了一些源代码中的拼写错误之后,运行上述代码没问题。

** index.js**

var mongoose = require('mongoose');
var models = require('./username');
var User = models.User;
mongoose.connect('mongodb://localhost/mongogroup');
function doquery(){
  User.find({"username":"xiaoming"},function(err,doc){
    if(doc) {
      console.log('found it',doc);
    };
  });
};

doquery();
kingche

@bnuhero 谢谢!整了半天原来是函数未被调用的问题~好囧好囧!