首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >回环远程方法中的自定义CRUD . mongodb模型以外的收集方法

回环远程方法中的自定义CRUD . mongodb模型以外的收集方法
EN

Stack Overflow用户
提问于 2019-07-09 02:18:12
回答 2查看 825关注 0票数 2

我正在为我的项目使用回收站。我为测试模型创建了一个模型' test‘和一个远程方法'createOrder’。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'use strict';

module.exports = function (Test) {
    /**
     * 
     * @param {number} amount 
     * @param {Function(Error)} callback
     */

    Test.createOrder = function (amount, callback) {
        // Add log to the logs collection 
        callback(null);
    };
};

我使用MongoDB作为数据源。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "paymentDS": {
    "host": "localhost",
    "port": 27017,
    "url": "",
    "database": "test",
    "password": "",
    "name": "testDS",
    "user": "",
    "useNewUrlParser": true,
    "connector": "mongodb"
  }
}

我希望将日志插入到测试模型中定义的createOrder远程方法的日志集合中。我怎么能这么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-11 22:08:37

如果您有日志收集的模型,您可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Test.createOrder = function(amount, callback) {
    // ...
    Test.app.models.Log.create(/*...*/)
    // ...
};

否则,您可以直接从db连接器访问日志集合:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Test.createOrder = function(amount, callback) {
    // ...
    Test.app.datasources.db.collection("logs").insert(/**/);
    // ...
};
票数 2
EN

Stack Overflow用户

发布于 2019-07-12 15:32:07

为了创建自定义CRUD操作,可以使用回送远程方法实现。环回中的每个模型都是通过持久化类继承的,您可以使用其默认方法从远程方法执行CRUD操作。看看下面的例子,

创建操作

下面的示例将在MongoDB中创建文档,并在日志集合中插入记录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Test.createOrder = function (amount, callback) {

    // Inserting object into database        
    Test.create({amount: amount, /*data to insert*/}, function(err, data) {

        // Adding logs to the logs collection 
        Test.app.models.Log.insert({ message: "order created", /*data to insert*/}, function(err, data) {
            callback(null);
        });
    });
};

在持久模型中有更多方便的方法,可以在不同的情况下(如upsertfindOrCreatesave等)执行创建操作。

读取操作

下面的示例将根据应用的过滤器从MongoDB检索多个文档,并在日志集合中插入记录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Test.findOrders = function (amount, callback) {

  // Finding objects from database
  Test.find(/** filters - Optional **/ { where: {}, limit: 10, fields: [], include: [], order: "", skip : 1}, function(err, data) {

    console.log(data);

    // Adding logs to the logs collection
    Test.app.models.Log.insert({ message: "orders finded", /*data to insert*/}, function(err, logData) {
      callback(data);
    });
  });
};

这里的过滤器是完全可选的。where用于指定条件所在的位置,您可以使用它的子过滤器(如gtltnin等)获取更多特定于条件的记录。fields可用于从集合中选择特定列,include可用于根据关系连接不同的集合。剩下的过滤器可以从他们的名字中理解。有关过滤器的更多信息,您可以检查提到的这里链接。

在持久模型中也有许多有用的方法,可以在不同的情况下(如findfindOne等)执行读取操作。

更新操作

下面的示例将更新MongoDB中的文档,并在日志集合中插入记录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Test.updateOrder = function (amount, callback) {

      // Updating object into database
      Test.updateAttribute(/* where filter */{id: 1}, {amount: 10, /*data to update*/}, function(err, data) {

        // Adding logs to the logs collection
        Test.app.models.Log.insert({ message: "order updated", /*data to insert*/}, function(err, data) {
          callback(null);
        });
      });
    };

您可以使用where过滤器的每个子过滤器来执行更新操作。同样,在持久性模型中有许多可用的方法,可以在几种不同的场景(如updateAttributeupdateAttributescreateUpdatesbulkUpdate等)中使用。

删除操作

下面的示例将从MongoDB中删除文档,并在日志集合中插入记录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Test.deleteOrder = function (amount, callback) {

      // Deleting object from database
      Test.destroyById(123, function(err, data) {

        // Adding logs to the logs collection
        Test.app.models.Log.insert({ message: "order deleted", /*data to insert*/}, function(err, logData) {
          callback(data);
        });
      });
    };

Persistent还包含一种不同类型的方法,用于根据不同的场景(如destroyAlldestroyById)执行删除操作。

关于CRUD 的官方文档您还可以从下面提到的URL中找到关于CRUD操作的完整文档:

下面的链接包含了持久性模型的所有可用方法,这些方法对于应用几个BLs非常有用,

还有几种方法可以在上面的链接中执行大容量操作。

测井

已经有几个扩展可以方便地与环回连接以执行日志记录操作,其中一些扩展列出如下:

  • 回送组件记录器(链接),

这对于记录控制台或数据库中的操作非常有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56950369

复制
相关文章
​综述 | SLAM回环检测方法
在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说的累积误差。一个消除误差有效的办法是进行回环检测。回环检测判断机器人是否回到了先前经过的位置,如果检测到回环,它会把信息传递给后端进行优化处理。回环是一个比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致的轨迹地图。如果能够检测到闭环,并对其优化,就可以让结果更加准确。
用户1150922
2019/08/29
3.1K0
​综述 | SLAM回环检测方法
MongoDB中删除document的方法
> db.users.remove({z:'abc'}) 删除记录 delete from users where z="abc" 默认remove没有带选项true/false的话,是删除匹配到的全部行记录.如果要只删除一条匹配到的记录可以使用:db.users.remove({z:'abc'},true)  > db.t1.deleteOne({name:'zzz'})    删除1条匹配的记录 > db.t1.deleteMany({name:'zzz'})  删除全部匹配的记录 > db.pos.remove({"age":{$gt:23}}) > db.users.remove({}) 删除users表全部记录 ## 有时候需要全量的删除数据,但是如果一次性执行下去可能把mongodb搞崩,可以使用下面的方法: echo "db.table_name.find().limit(1000).forEach(doc =>  {     db.table_name.remove({_id:doc._id})     } )" | mongo --port 27017 db_name
保持热爱奔赴山海
2019/09/17
1.4K0
网页表单钓鱼以外的钓鱼方法
可以看出,钓鱼攻击并不是一种完全随缘的攻击方法。关键在于是否成功伪装成了受害者信任的目标。
信安之路
2018/08/08
6780
网页表单钓鱼以外的钓鱼方法
Django 模型中自定义Manager和模型方法
在语句Book.objects.all()中,objects是一个特殊的属性,通过它来查询数据库,它就是模型的一个Manager. 每个Django模型至少有一个manager,你可以创建自定义manager以定制数据库的访问. 这里有两个方法创建自定义manager:添加额外的manager;修改manager返回的初始Queryset.
菲宇
2019/06/13
2.8K0
Java中垃圾收集的方法有哪些?
【玩转 GPU】AI绘画、AI文本、AI翻译、GPU点亮AI想象空间-腾讯云开发者社区-腾讯云 (tencent.com)
疯狂的KK
2023/07/12
1940
Java中垃圾收集的方法有哪些?
MongoDB的CRUD操作(三)
在MongoDB中,我们可以使用find()方法来查询文档。该方法接受一个JSON对象,表示要查询的条件,并返回一个游标对象,该对象可以用于遍历查询结果集。
堕落飞鸟
2023/05/09
2960
Java中的RMI(远程方法调用)
RMI(Remote Method Invocation,远程方法调用)是从java1.1开始实现的,它大大增强了Java开发分布式应用的能力。RMI对接口有着强烈的依赖,在需要创建一个远程对象的时候,我们通过传递一个接口来隐藏基层的实施细节,所以客户得到远程对象的一个句柄时,它们真正得到的是接口句柄,然后本地代码通过接口操作远程对象。通过RMI编写程序可以非常方便的实现分布式Java应用程序。
用户7886150
2020/12/18
1.6K0
MongoDB的CRUD操作(四)
在MongoDB中,我们可以使用updateOne()和updateMany()方法来更新文档。
堕落飞鸟
2023/05/09
3650
MongoDB的CRUD操作(五)
在MongoDB中,我们可以使用deleteOne()和deleteMany()方法来删除文档。
堕落飞鸟
2023/05/09
2760
MongoDB的CRUD操作(二)
要在MongoDB中创建一个文档,我们可以使用insertOne()或insertMany()方法。insertOne()方法用于向集合中插入一个文档,而insertMany()方法用于向集合中插入多个文档。
堕落飞鸟
2023/05/09
2710
MongoDB的CRUD操作(一)
MongoDB是一种NoSQL数据库,使用面向文档的数据模型,不同于传统的关系型数据库。在MongoDB中,数据以文档的形式存储,这些文档使用JSON格式表示,并且可以嵌套其他文档或数组。
堕落飞鸟
2023/05/09
3790
新的方法(Set<T>)实现mvc的crud
controller层:  crud是在集合的基础上完成的(实则对集合的crud)
wfaceboss
2019/04/08
4990
MongoDB(三)——CRUD
MongoDB作为非关系型数据库。还是传统数据库的增删改查有很大的差别的。这里仅仅是将知识点进行了一下提纲挈领,实际用的时候。我们百度一下具体使用方法就可以。
全栈程序员站长
2022/07/06
5120
MongoDB(三)——CRUD
Odoo 通过Javascript调用模型中自定义方法
那问题来了,如果希望在普通的javascript函数中使用上述请求功能,咋办?参考如下示例代码
授客
2023/02/26
1.3K0
excel导入mongodb的方法
在Windows下导入excel到MongoDB:打开cmd窗口,进入mongodb的bin目录,运行以下命令:
用户6421725
2019/10/31
3.1K0
MongoDB Query 的几个方法
Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同时满足多个条件 Query.EQ("name", "a");//等于 Query.Exists("type", true);//判断键值是否存在 Query.GT("value", 2);//大于> Query.GTE("value", 3);//大于等于>= Query.In("name", "a", "
磊哥
2018/05/08
9960
数据挖掘中模型填补的方法
通常,数据挖掘领域 建模时 数据样本的填补方法与样本量的大小息息相关,一般,如果变量间取值关联程度较强,则模型填补的方式似乎更为常见:
许卉
2019/07/15
1.1K0
数据挖掘中模型填补的方法
点击加载更多

相似问题

如何使用模型架构创建回环远程方法?

24

回环使用关系的远程方法

12

回环远程方法:参数验证

18

回环-远程方法及相关模型查询结果的平坦化

10

回环-使用远程方法下载pdf

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文