我在查询我的mongodb数据库时遇到问题。我正在使用反应js。问题似乎不是连接,因为我可以保存到数据库就好了,我只能假设它的语法问题。我环顾四周但找不到修复方法。下面是schema.js文件和index.js文件的代码片段:
Schema.js
//import dependency
var mongoose = require('mongoose')
var Schema = mongoose.Schema
//create new instance of the mongoose.schema. the schema takes an
//object that shows the shape of your database entries.
var UserSchema = new Schema({
socketId: String
})
//export our module to use in server.js
module.exports = mongoose.model('User', UserSchema)
index.js
var mongoose = require('mongoose')
var db = mongoose.connect('mongodb://mongodatabase', {
useMongoClient: true,
/* other options */
})
var UserSchema = require('../schema/Schemas');
function userExist(userList, username){
var usert = new UserSchema()
var query = usert.where({socketId: username})
query.findOne(function (err, usert) {
if (err) return handleError(err);
if (usert) {
// doc may be null if no document matched
}
});
return username in userList
// return query
}
我收到错误:usert.where不是函数。 我尝试使用只是找到但我得到相同的错误
欢迎任何帮助,谢谢
答案 0 :(得分:0)
您应该直接在架构类上使用.findOne function而不是.where
像这样:
UserSchema.findOne({socketId: username}, function (err, usert) {
if (err) return handleError(err);
if (usert) {
// doc may be null if no document matched
}
});
.where必须用于查询,而不是架构。
要使用.where,您可以这样做:
User.findOne().where({ socketId: username }).exec( function (err, usert) {
if (err) return handleError(err);
if (usert) {
// doc may be null if no document matched
}
})