标签: mongoose

使用$或condition的Mongoose的find方法无法正常工作

最近我开始在Nodejs上使用MongoDB和Mongoose.

当我使用带有$or条件和_id字段的Model.find方法时,Mongoose无法正常工作.

这不起作用:

User.find({
  $or: [
    { '_id': param },
    { 'name': param },
    { 'nickname': param }
  ]
}, function(err, docs) {
   if(!err) res.send(docs);
});
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果我删除'_id'部分,这就行了!

User.find({
  $or: [
    { 'name': param },
    { 'nickname': param }
  ]
}, function(err, docs) {
   if(!err) res.send(docs);
});
Run Code Online (Sandbox Code Playgroud)

而在MongoDB shell中,两者都能正常工作.

mongoose mongodb node.js

95
推荐指数
3
解决办法
11万
查看次数

如何使用Mongoose删除数据库?

我正在Node.js和Mongoose中准备一个数据库创建脚本.如何检查数据库是否已存在,如果是,请使用Mongoose删除(删除)它?

我找不到用Mongoose放弃它的方法.

mongoose mongodb node.js

95
推荐指数
8
解决办法
9万
查看次数

Mongoose,使用find选择特定字段

我试图只选择一个特定的字段

exports.someValue = function(req, res, next) {
    //query with mongoose
    var query = dbSchemas.SomeValue.find({}).select('name');

    query.exec(function (err, someValue) {
        if (err) return next(err);
        res.send(someValue);
    });
};
Run Code Online (Sandbox Code Playgroud)

但是在我的json响应中我也收到了_id,我的文档架构只有两个fiels,_id和name

[{"_id":70672,"name":"SOME VALUE 1"},{"_id":71327,"name":"SOME VALUE 2"}]
Run Code Online (Sandbox Code Playgroud)

为什么???

javascript mongoose mongodb node.js

95
推荐指数
7
解决办法
14万
查看次数

passport.js passport.initialize()中间件未使用

我正在使用带有express + mongoose的节点并尝试将passport.js与restful api一起使用.
身份验证成功后我一直收到此异常(我在浏览器上看到了回调网址):

/Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/utils.js:419
        throw err;
              ^
Error: passport.initialize() middleware not in use
    at IncomingMessage.req.login.req.logIn (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/http/request.js:30:30)
    at Context.module.exports.delegate.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/middleware/authenticate.js:194:13)
    at Context.actions.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/context/http/actions.js:21:25)
    at verified (/Users/naorye/dev/naorye/myproj/node_modules/passport-facebook/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth2.js:133:18)
    at Promise.module.exports.passport.use.GitHubStrategy.clientID (/Users/naorye/dev/naorye/myproj/config/passport.js:91:24)
    at Promise.onResolve (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:162:8)
    at Promise.EventEmitter.emit (events.js:96:17)
    at Promise.emit (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:79:38)
    at Promise.fulfill (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:92:20)
    at /Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/query.js:1822:13
Run Code Online (Sandbox Code Playgroud)

我已经读过,我应该放在app.use(passport.initialize());app.use(passport.session());之前app.use(app.router);,这就是我所做的.这是我注册中间件的express.js:

var express = require('express'),
    mongoStore = require('connect-mongo')(express),
    flash = require('connect-flash'),
    helpers = require('view-helpers');

module.exports = function (app, config, passport) {
    app.set('showStackError', true);
    // should be placed before express.static
    app.use(express.compress({ …
Run Code Online (Sandbox Code Playgroud)

restful-authentication mongoose node.js express passport.js

94
推荐指数
3
解决办法
7万
查看次数

mongoDB/mongoose:如果不为null,则为唯一

我想知道是否有办法强制一个唯一的集合条目,但只有当条目不为空时.e示例模式:

var UsersSchema = new Schema({
    name  : {type: String, trim: true, index: true, required: true},
    email : {type: String, trim: true, index: true, unique: true}
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,'email'不是必需的,但如果保存'email',我想确保此条目是唯一的(在数据库级别).

空条目似乎得到值'null'所以每个条目都没有电子邮件与'unique'选项崩溃(如果有不同的用户没有电子邮件).

现在我正在应用程序级别上解决它,但是希望保存该数据库查询.

谢谢

mongoose mongodb node.js

91
推荐指数
3
解决办法
3万
查看次数

为什么不能修改Mongoose Query返回的数据(例如:findById)

当我尝试更改Mongoose Query返回的数据的任何部分时,它没有任何效果.

昨天我想用各种各样的_.clone()s,使用临时存储变量等来解决这个问题.最后,就在我疯了的时候,我找到了一个解决方案.所以我认为将来有人(fyuuuture!)可能有保存问题.

Survey.findById(req.params.id, function(err, data){
    var len = data.survey_questions.length;
    var counter = 0;

    _.each(data.survey_questions, function(sq){
        Question.findById(sq.question, function(err, q){
            sq.question = q; //has no effect

            if(++counter == len) {
                res.send(data);
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

mongoose node.js

88
推荐指数
2
解决办法
3万
查看次数

Mongoose查询其中value不为null

希望执行以下查询:

Entrant
    .find
      enterDate : oneMonthAgo
      confirmed : true
    .where('pincode.length > 0')
    .exec (err,entrants)->
Run Code Online (Sandbox Code Playgroud)

我正在做where子句吗?我想选择pincode不为null的文档.

mongoose mongodb

87
推荐指数
3
解决办法
9万
查看次数

(节点:3341)弃用警告:猫鼬:mpromise

我正在尝试使用我的自定义方法在猫鼬的顶部开发一个类,所以我用我自己的类扩展了猫鼬但是当我调用创建一个新的汽车方法时它可以工作但它的条带和错误,在这里我让你看看我想做什么.

我收到了这个警告

(node:3341) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
Run Code Online (Sandbox Code Playgroud)

在我之后

driver.createCar({
      carName: 'jeep',
      availableSeats: 4,
    }, callback);
Run Code Online (Sandbox Code Playgroud)

driver是Driver类的一个实例

const carSchema = new Schema({
  carName: String,
  availableSeats: Number,
  createdOn: { type: Date, default: Date.now },
});
const driverSchema = new Schema({
 email: String,
 name: String,
 city: String,
 phoneNumber: String,
 cars: [carSchema],
 userId: {
   type: Schema.Types.ObjectId,
   required: true,
 },
createdOn: { type: Date, default: Date.now },
});
const DriverModel = mongoose.model('Driver', …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

87
推荐指数
2
解决办法
5万
查看次数

为什么Mongoose有模式和模型?

这两种类型的物体似乎彼此如此接近,两者都感觉多余.有两个模式和模型有什么意义?

mongoose mongodb

86
推荐指数
3
解决办法
2万
查看次数

Mongoose.js:按用户名LIKE值查找用户

我喜欢通过查找名为value的用户在mongoDb中找到用户.问题:

username: 'peter'
Run Code Online (Sandbox Code Playgroud)

如果用户名是"彼得",或"彼得"......或类似的东西,我不会找到它.

所以我想像sql一样

SELECT * FROM users WHERE username LIKE 'peter'
Run Code Online (Sandbox Code Playgroud)

希望你们得到我要求的东西?

简短:mongoose.js/mongodb中的"字段LIKE值"

javascript find mongoose mongodb node.js

86
推荐指数
10
解决办法
10万
查看次数