微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Sails.JS – 获取数据库中对象/行数的计数

在Sails.js中,通过生成模型和控制器为您完成了大量工作.控制器允许通过API访问数据.它允许通过传递开始/跳过/偏移和取/限制来轻松分页.但是为了让我确定一个集合的最大页面,我需要知道集合中有多少项.

我试图在生成器中扩展蓝图以公开新的API方法计数并创建计数操作.根据Waterline documentation,count是可以在模型上调用的动作.当我调用User.count()时,我得到了这个:

{ _context: 
   { identity: 'user',adapter: 
      { syncable: false,defaults: [Object],registerCollection: [Function],create: [Function],find: [Function],update: [Function],destroy: [Function],count: [Function],identity: 'odata',globalId: 'odata',config: [Object] },attributes: {},_cast: { _types: [Object] },_schema: { context: [Circular],schema: [Object],hasSchema: true },_validator: { validations: {} },_callbacks: 
      { beforeValidation: [Object],afterValidation: [Object],beforeUpdate: [Object],afterUpdate: [Object],beforeCreate: [Object],afterCreate: [Object],beforeDestroy: [Object],afterDestroy: [Object] },_instanceMethods: {},autopK: true,autocreatedAt: true,autoUpdatedAt: true,hasSchema: true,migrate: 'alter',_model: { [Function] extend: [Function],inject: [Function],__super__: {} },_transformer: { _transformations: {} },_tableName: 'user',_adapterDefs: [ [Object] ],_adapter: 
      { adapter: [Object],adapterDefs: [Object],query: [Circular],collection: 'user' },syncable: [Function],defaults: [Function],config: [Function],findOneById: [Function: dynamicmethod],findOneByIdIn: [Function: dynamicmethod],findOneByIdLike: [Function: dynamicmethod],findById: [Function: dynamicmethod],findByIdIn: [Function: dynamicmethod],findByIdLike: [Function: dynamicmethod],countById: [Function: dynamicmethod],countByIdIn: [Function: dynamicmethod],countByIdLike: [Function: dynamicmethod],idStartsWith: [Function: dynamicmethod],idContains: [Function: dynamicmethod],idEndsWith: [Function: dynamicmethod],findOneByCreatedAt: [Function: dynamicmethod],findOneByCreatedAtIn: [Function: dynamicmethod],findOneByCreatedAtLike: [Function: dynamicmethod],findByCreatedAt: [Function: dynamicmethod],findByCreatedAtIn: [Function: dynamicmethod],findByCreatedAtLike: [Function: dynamicmethod],countByCreatedAt: [Function: dynamicmethod],countByCreatedAtIn: [Function: dynamicmethod],countByCreatedAtLike: [Function: dynamicmethod],createdAtStartsWith: [Function: dynamicmethod],createdAtContains: [Function: dynamicmethod],createdAtEndsWith: [Function: dynamicmethod],findOneByUpdatedAt: [Function: dynamicmethod],findOneByUpdatedAtIn: [Function: dynamicmethod],findOneByUpdatedAtLike: [Function: dynamicmethod],findByUpdatedAt: [Function: dynamicmethod],findByUpdatedAtIn: [Function: dynamicmethod],findByUpdatedAtLike: [Function: dynamicmethod],countByUpdatedAt: [Function: dynamicmethod],countByUpdatedAtIn: [Function: dynamicmethod],countByUpdatedAtLike: [Function: dynamicmethod],updatedAtStartsWith: [Function: dynamicmethod],updatedAtContains: [Function: dynamicmethod],updatedAtEndsWith: [Function: dynamicmethod] },_method: [Function],_criteria: {},_values: null }

注意:我使用的是自定义适配器,但我已为适配器创建了count方法.

解决方法

获取用户集合中对象数量的计数:
User.count(function (err,num) {
    if(err) {
       return console.log(err);
    }
    console.log(num);
});

要将User.count包装在另一个方法中:

yourMethod = function (callback) {
    User.count(callback);
}

原文地址:https://www.jb51.cc/js/151162.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐