本文介绍如何使用数据存储服务查询数据集中的记录。

客户端调用

  • 查询一条记录。

    调用findOne方法查询大于且最接近18岁的一条记录的name

    projection: { name: 1 }表示只返回name字段,其中1表示过滤,0表示排除。

    sort: { age: 1 }表示将查询后的结果按升序排列,其中1表示升序,-1表示降序。

    mpserverless.db.collection('users')
      .findOne({
        age: { $gt: 18 }
      }, {
        projection: { name: 1 },
        sort: { age: 1 }
      })
      .then(res => { })
      .catch(console.error);
  • 查询所有记录。

    调用find方法查询所有大于18岁的name,并将查询结果按升序返回。

    mpserverless.db.collection('users')
      .find({
        age: { $gt: 18 }
      }, {
        projection: { name: 1 },
        sort: { age: 1 }
      })
      .then(res => { })
      .catch(console.error);
  • 查询并删除一条记录。

    调用findOneAndDelete方法查询并删除小于且最接近18岁的一条数据。

    mpserverless.db.collection('users')
      .findOneAndDelete({
        age: { $lt: 18 }
      }, {
        sort: { age: -1 }
      })
      .then(res => { })
      .catch(console.error);
  • 查询并整体替换一条记录。

    调用findOneAndReplace方法查询并替换namezhangsan的一条数据。

    mpserverless.db.collection('users')
      .findOneAndReplace({
        name: "zhangsan"
      }, {
        $set: {
          name: "lisi",
          age: 20
        }
      })
      .then(res => { })
      .catch(console.error);
  • 查询并更新记录。

    调用findOneAndUpdate查询并更新namezhangsan的一条记录的age字段。

    mpserverless.db.collection('users')
        .findOneAndUpdate({
            name: "zhangsan"
        },
        {
        $set: {
            age: 18
            }
        })
        .then(res => {})
        .catch(console.error);

云函数调用

  • 查询一条记录。

    调用findOne方法查询大于且最接近18岁的一条记录的name

    projection: { name: 1 }表示只返回name字段,其中1表示过滤,0表示排除。

    sort: { age: 1 }表示将查询后的结果按升序排列,其中1表示升序,-1表示降序。

    'use strict';
    
    module.exports = async function (ctx) {
      return await ctx.mpserverless.db.collection('users')
        .findOne({
          age: { $gt: 18 }
        }, {
          projection: { name: 1 },
          sort: { age: 1 }
        });
    };                    
  • 查询所有记录。

    调用find方法查询所有大于18岁的name,并将查询结果按升序返回。

    'use strict';
    
    module.exports = async function (ctx) {
      return await ctx.mpserverless.db.collection('users')
        .find({
          age: { $gt: 18 }
        }, {
          projection: { name: 1 },
          sort: { age: 1 }
        });
    };
  • 查询并删除一条记录。

    调用findOneAndDelete方法查询并删除小于且最接近18岁的一条数据。

    'use strict';
    
    module.exports = async function (ctx) {
      return await ctx.mpserverless.db.collection('users')
        .findOneAndDelete({
          age: { $lt: 18 }
        }, {
          sort: { age: -1 }
        });
    };                    
  • 查询并整体替换一条记录。

    调用findOneAndReplace方法查询并替换namezhangsan的一条数据。

    'use strict';
    
    module.exports = async function (ctx) {
      return await ctx.mpserverless.db.collection('users')
        .findOneAndReplace({
          name: "zhangsan"
        },{
          $set: {
            name: "lisi",
            age: 20
          }
        });
    }; 
  • 查询并更新记录。

    调用findOneAndUpdate查询并更新namezhangsan的一条记录的age字段。

    'use strict';
    
    module.exports = async function (ctx) {
      return await ctx.mpserverless.db.collection('users')
        .findOneAndUpdate({
          username: "zhangsan"
        },
          {
            $set: {
              age: 18
            }
          });
    };