GVKun编程网logo

Mongoose:查找最新文档(mongodb查找文档)

13

对于Mongoose:查找最新文档感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍mongodb查找文档,并为您提供关于ExpresscookieSession和Mongoose:如何使requ

对于Mongoose:查找最新文档感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍mongodb查找文档,并为您提供关于Express cookieSession和Mongoose:如何使request.session.user成为Mongoose模型?、mongodb / mongoose findMany-查找ID在数组中列出的所有文档、mongoDB / mongoose:唯一,如果不为null、MongoDB / Mongoose:在等待查询之前获取查询的文档数的有用信息。

本文目录一览:

Mongoose:查找最新文档(mongodb查找文档)

Mongoose:查找最新文档(mongodb查找文档)

我有Mongoose架构,其中有一个天属性

Math.floor((new Date()).getTime() / (24 * 3600 * 1000))

我想查找输入的最后一天的数据,所以说今天就是16085我要查找输入的最后一天。或者说另一种说法。什么是day属性小于等于16085但大于所有其他文档的文档day16085

或另一种方式

day属性小于等于的所有文档集中的最大元素是什么16085

然后遍历我所有的文档,我该怎么做呢?

答案1

小编典典

在外壳中将是:

db.test.find({day: {$lt: 16085}}).sort({day: -1}).limit(1)

查找所有day小于16085 的文档,对它们进行day降序排序,然后采用第一个。

在Mongoose中,它将类似于:

MyModel.find({day: {$lt: 16085}}).sort({day: -1}).limit(1).exec((err, docs) => { ... });

Express cookieSession和Mongoose:如何使request.session.user成为Mongoose模型?

Express cookieSession和Mongoose:如何使request.session.user成为Mongoose模型?

创建新用户帐户后,我创建了newUser,这是一个Mongoose模型实例,如下所示:

_events: Object
errors: undefined
isNew: false
save: function () {
arguments: null
caller: null
_doc: Object
  name: 'Joe Smith'
...

该对象的实际数据位于 _doc 属性中,尽管存在getter和setter,所以您可以运行:

user.name = 'Jane Doe'

这样就可以了。我跑:

request.session.user = newUser;

将用户保存到会话。到目前为止,一切都很好。

但是,在后续请求中,request.session.user似乎只是_doc中的内容。例如:

name: 'Joe Smith'

很好,但这意味着我无法运行例如 request.session.user.save() 来保存更改。

我可以简单地制作一些中间件来查找与数据关联的用户。但是我想了解更多有关Express和Mongoose在这里做什么的信息。

如何使request.session.user成为Mongoose模型?

更新 :我当前的中间件黑客:

// Use as a middleware on routes which need users
// TODO: only needed due to request.session.user being saved weirdly
var rehydrateUser = function(request,response,next) {
  if ( request.session.user ) {
    var hydrated = request.session.user.save
    if ( ! hydrated ) {
      console.log('Rehydrating user...');
      models.User.findOne({ somefield: request.session.user.somefield },function (err,user) {
        if ( err ) {
          request.session.error = 'User not found in DB!';
          request.redirect('/');
        } else {
          request.session.user = user;          
          console.log('Rehydrated user! All repos already being monitored.');
          next();
        }
      })
    } else {
      next();
    }
  } else {
    console.log('No user in session')
    next();
  }
}

mongodb / mongoose findMany-查找ID在数组中列出的所有文档

mongodb / mongoose findMany-查找ID在数组中列出的所有文档

我有一个_ids数组,我想相应地获取所有文档,最好的方法是什么?

就像是 …

// doesn't work ... of course ...

model.find({
    '_id' : [
        '4ed3ede8844f0f351100000c','4ed3f117a844e0471100000d','4ed3f18132f50c491100000e'
    ]
},function(err,docs){
    console.log(docs);
});

该数组可能包含数百个_id。

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

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

我想知道是否有办法强制唯一的收集条目, 但前提是条目不为null 。e示例架构:

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

在这种情况下,不需要’email’,但是如果保存了’email’,我想确保该条目是唯一的(在数据库级别)。

空条目的值似乎为’null’,因此每个条目都不会通过’unique’选项使电子邮件崩溃(如果有其他用户没有电子邮件)。

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

谢谢

答案1

小编典典

从MongoDB v1.8 +开始,您可以通过sparse在定义索引时将选项设置为true 来获得确保唯一值但允许多个文档不包含字段的预期行为。如:

email : {type: String, trim: true, index: true, unique: true, sparse: true}

或在外壳中:

db.users.ensureIndex({email: 1}, {unique: true, sparse: true});

需要注意的是独特的,稀疏索引仍然不允许多个文档与email同一个字段 null,只有多个文档 没有 一个email领域。

参见http://docs.mongodb.org/manual/core/index-
sparse/

MongoDB / Mongoose:在等待查询之前获取查询的文档数

MongoDB / Mongoose:在等待查询之前获取查询的文档数

如何解决MongoDB / Mongoose:在等待查询之前获取查询的文档数?

我使用.skip()和.limit()来分页我的MongoDB查询。但是我想在通过这些功能剪切文档之前先阅读所有文档。

  • 是的,我可以等待查询并读取其长度。但是然后我将等待两次相同的查询。
  • 我尝试使用estimatedDocumentCount()函数,但是看不到任何结果

致谢,谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

关于Mongoose:查找最新文档mongodb查找文档的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Express cookieSession和Mongoose:如何使request.session.user成为Mongoose模型?、mongodb / mongoose findMany-查找ID在数组中列出的所有文档、mongoDB / mongoose:唯一,如果不为null、MongoDB / Mongoose:在等待查询之前获取查询的文档数的相关知识,请在本站寻找。

本文标签: