Mongoose:如果元素已存储,则不插入

2024-03-10

我使用 MongoDB 和 Mongoose 与 Express 来存储通过 Twitter API 检索的推文。

我想避免保存重复的推文。我正在做类似的事情:

TweetsModel.find({tweet_id: tweet.tweet_id}, function (err, tweets) {
    if(tweets.length > 0){
        cb('Tweet already exists',null);
    } else{
        tweet.save(function(err){
            cb(err,user);
        });
    }
});

我的问题是:出于性能原因,有没有办法使用 Mongoose 来避免执行两个请求?一找到一保存?

知道我也不想更新该推文(如果它已经存在)。

谢谢


您可以使用update打电话给upsert http://docs.mongodb.org/manual/reference/method/db.collection.update/#upsert-parameter执行此操作的选项:

TweetsModel.update(
    {tweet_id: tweet.tweet_id}, 
    {$setOnInsert: tweet}, 
    {upsert: true}, 
    function(err, numAffected) { .. }
);

如果具有该推文 ID 的文档已存在,则这是无操作。否则它将添加文档。

$setOnInsert需要 MongoDB v2.4+。如果您的版本低于 2.4,事情会变得更加复杂。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongoose:如果元素已存储,则不插入 的相关文章

  • 使用 mocha/chai 确保 REST API 提供文件?

    我想验证对 REST API 端点之一的调用是否正在提供文件 但我不确定如何进行操作 并且我没有看到任何相关示例 我确实看过文档 http chaijs com api bdd 但这对我没有多大帮助 服务器端代码本质上是 在 Express
  • 将 mongo 数组转换为具有键值对的对象

    我有一个包含字符串数组的 mongo 文档 我需要将这个特定的字符串数组转换为包含键值对的对象数组 以下是我目前的做法 id ObjectId 57e3720836e36f63695a2ef2 platform A1 available C
  • MongoDB的ObjectId是如何生成的?

    他们是吗somewhat随机的 我的意思是 人们能够将它们分开吗 它们不是随机的 可以很容易地预测 BSON ObjectID 是一个 12 字节值 由 4 字节时间戳组成 自纪元以来的秒数 一个 3 字节 机器 ID 2 字节进程 ID
  • Express.js 中的自定义回调 get

    我的 app js 中有一个 get app get api personnel api personnel 调用此函数作为回调以从 mongo 加载一些数据 exports personnel function req res var d
  • 多文档事务在使用 mongodb 4.08 社区服务器的 C# 中不起作用

    我需要使用 mongodb 事务更新多个文档 mongodb 社区服务器版本是 4 08 net 的 mongodb 驱动程序是 2 9 beta 也尝试过 2 8 从调试中 我可以看到它执行了 session AbortTransacti
  • 如何在java中创建mongoDB objectid

    参考帖子如何使用 Java 将数组添加到 MongoDB 文档 https stackoverflow com questions 15371839 how to add an array to a mongodb document usi
  • 环回关系不填充对象 ID 数组

    到目前为止我有 2 个模型 工作流程核心 工作流程步骤 工作流核心有一个steps属性 该属性是数组类型并且包含1 多个步骤 当呼叫接通时工作流程核心响应正文不会使用实际步骤对象填充步骤数组 工作流程核心 json name workflo
  • 在java中将RFC3339 DateTime转换为Date [重复]

    这个问题在这里已经有答案了 如何转换RFC 3339 https www rfc editor org rfc rfc3339java 中的 com google api client util DateTime 到 DateTime 例如
  • 清理 MongoDB 的输入

    我正在为 MongoDB 数据库程序编写 REST 接口 并尝试实现搜索功能 我想公开整个 MongoDB 接口 我确实有两个问题 但它们是相关的 所以我将它们放在一篇文章中 使用 Python json 模块解码不受信任的 JSON 是否
  • 在 shell/shell 脚本中设置 MongoDB 写关注

    我正在尝试填充一个集合MongoDB的壳 据我了解 使用轻松的Write Concern可以大大加快这个过程 我说的是文档 http docs mongodb org manual core write concern write oper
  • 为关联数组选择哪种映射类型?学说ODM

    我有一个关于 顺便说一句 真的很棒 Doctrine ODM 的简单问题 假设您有一个类似以下的文档 Document class Test Id public id WHICHTYPE public field array 现在我想存储一
  • Spring Data mongodb:添加 MongoDb 访问凭据

    我的 Spring 应用程序中有以下工作配置
  • MongoDB 如何选择候选计划

    我的应用程序中的查询速度很慢 创建两个索引后 它在本地数据库中使用它们以获得更好的性能 但是当我部署在生产数据库上时 它仍然使用原始索引 下面是我所做的 集合中的属性tasks team id project id created by a
  • MongoDB 嵌套数组查询

    我问这个作为评论another https stackoverflow com questions 5250652 query a nested array in mongodb问题 还发了一个question https groups g
  • 相同的单词但不同的 unicode 字符

    我在 Windows 上使用 Python 构建了一个关于越南餐馆的问答应用程序 要编写越南语字符 我需要使用 Unicode 首先 我从使用 HTML charset utf 8 的 TripAdvisor 网站克隆数据并构建我的 Mon
  • 如何在Sequelize中从主模型同一级别的包含模型返回结果?

    这是我在项目中完成的代码和结果 我想获得包含模型的结果与主模型相同的结果 下面的代码是我所做的 序列化查询 User findAll include model Position attributes POSITION NAME then
  • Java 驱动程序相当于 JavaScript shell 的 Object.bsonsize( doc )?

    我想知道 Java 驱动程序相当于 Mongo JavaScript shell 的 Object bsonsize doc 方法 例如 执行以下操作的 Java 代码是什么 bobk mbp bobk mongo MongoDB shel
  • Pug 迭代:无法读取未定义的属性“长度”

    我在js文件中有以下数据 let data id 1 type action id 2 type comedy 并尝试使用哈巴狗模板打印它 doctype html html head title title link rel styles
  • mongodb 中的 Redact 对我来说似乎很晦涩

    我现在正在与 redact 作斗争 我不确定是否理解它 我刚刚阅读了文档并尝试在集合成绩上使用 redact 它来自 mongodb 在线培训 grades 集合中的文档如下所示 id ObjectId 50b59cd75bed76f465
  • 如何同时使用 $gt 和 $lte 优化 MongoDB 查询?

    我有以下查询 有点像反向范围查找 db ip ranges find and start ip num lte 1204135028 end ip num gt 1204135028 当仅使用 lte 标识符运行时 查询会立即返回 但是当我

随机推荐

  • Grails 依赖注入在服务之外?

    我有一个 Grails 应用程序 需要运行一个可能会随着时间的推移而被替换的策略 我知道 Spring 是 Grails 的基础 所以我想知道我是否可以访问 Spring 的 IoC 容器 以便我可以在 xml 文件中外部化实际依赖项 注意
  • Hibernate @PreUpdate:检查已更改的内容

    问题 如何检查注释的方法内哪些字段已更改 PreUpdate 可选 如果上述问题的答案是 不可能 那么也许还有其他方法可以解决我的问题 I want自动更新modified Tourist每次我们改变它的字段时 除了情况当我们只修改loca
  • Laravel 4 测试; “phpunit”无法识别?

    http four laravel com docs testing http four laravel com docs testing说 安装新的 Laravel 应用程序后 只需运行phpunit在命令行上运行测试 phpunit无法
  • 如何将一个 DialogFragment 提升到另一个之上?

    假设我有几个对话框片段 它们是为了响应可以以任何顺序到达的消息和事件而显示的 通常 最后显示的对话框将位于顶部 有没有办法显示对话框片段under是现有的 还是在显示后更改其 z 顺序 我的应用程序一次显示多个对话框的情况应该很少见 但这种
  • Apache POI 获取字体规格

    我想自动调整 Excel 中的列大小 但又不会花费太多性能 Apache POI 的内置自动调整大小非常慢 在几个小时后没有完成 100 万行 为了节省性能 我只想近似单元格宽度 但为此我需要字体规格 Apache POI 有一个类叫做Fo
  • 如何为 Mac OS 编写互联网帐户插件?

    Mac OS 上有多个邮件 联系人和日历插件 但我需要具有邮件 联系人和日历服务的新型帐户 我不想将此帐户单独添加为邮件帐户 联系人帐户和日历帐户 我用谷歌搜索并没有找到有关这些插件的文档 我只知道它们位于 System Library I
  • 在 Woocommerce MINI CART 中显示小计、税收、总计

    我有一个带有 woocommerce 插件的 WordPress 网站 在 woocommerce 设置中 我在购物车和结帐中显示不含税的价格 因此它显示了小计 税收和总计 但在迷你购物车小部件中 它只显示小计 如何让迷你购物车小部件显示小
  • 使用 SJCL 在 Javascript 中加密并在 PHP 中解密

    我想用 Javascript 加密一些数据 并将其发送到 php 服务器后可以解密 我计划使用 JS 加密库作为 SJCL http crypto stanford edu sjcl http crypto stanford edu sjc
  • 具有安全性和数据库用户的 Symfony 4 登录表单

    大约一周前 我还是 Symfony 的菜鸟 我想我应该深入研究 Symfony 4 在尝试解决基本登录问题一周后 我相信文档仍然缺少一些部分 现在我找到了一个解决方案 我将与您分享它以及一些关于您可能做错的事情的提示 答案的第一部分是建议列
  • WPF UserControls:即使使用“x:Shared =“False”'图像也会消失

    我在a中定义了一个样式ResourceDictionary对于带有图像的按钮
  • 如何解决“React Hook useEffect 缺少依赖项。要么包含它,要么删除依赖项数组”问题?

    我想用useEffect 但是当我添加getUpperGroup方法 我收到警告 React Hook useEffect 缺少依赖项 getUpperGroups 要么包含它 要么删除依赖数组 我的代码是 useEffect gt get
  • SpriteKit 分数是随机的

    我正在使用 SpriteKit 创建一个游戏并尝试增加碰撞时的分数 由于某种奇怪的原因 每次分数增加时都是随机数 而不仅仅是 1 In the didBeginContact方法我有子弹和外星人之间的碰撞 每次碰撞时 我希望分数增加 1 除
  • Python、PyDot 和决策树

    我试图可视化我的决策树 但出现错误 代码是 X i 1 for i in dataset attribute y i 0 for i in dataset clf tree DecisionTreeClassifier dot data S
  • 使用 Rails 连接到远程 MySQL 主机时出现问题

    我想连接到远程 MySQL 主机 使用rake db create 但 Rails 始终认为它是本地的 Database yml 使用以下配置 defaults defaults encoding unicode adapter mysql
  • 加载图像时出现内存不足错误

    我想在 Android 上加载图像 background BitmapFactory decodeResource getResources R drawable hangmanbegin background Bitmap createS
  • AngularJS .Net WebAPI 上传图像并保存到数据库(MSSQL)

    我正在尝试从 UI 上传图像 可以绑定到数据类型为 byte 的模型 并将其保存在数据库中 我正在使用 AngularJS 将其连接到 NET WebAPI 并将其保存到 MSSSQL Server 我找不到使用这些技术的好例子 问题 使用
  • utf-8 和 utf-8-sig 有什么区别?

    我正在尝试使用 pandas dataframe 在 python 中对孟加拉语单词进行编码 但作为编码类型 utf 8 不起作用 但 utf 8 sig 起作用 我知道utf 8 sig带有BOM 字节顺序标记 但为什么它被称为 utf
  • 为什么 import cntk as C 在 google colab 中不起作用

    我安装了opencv版本3 4 4 安装了cntk 导入到google collab给出了以下结果 import cntk as C usr local lib python3 6 dist packages cntk cntk py in
  • 如何在 PHP 中将字符串转换为 JSON 对象

    我从 SQL 查询得到以下结果 Coords Accuracy 65 Latitude 53 277720488429026 Longitude 9 012038778269686 Timestamp Fri Jul 05 2013 11
  • Mongoose:如果元素已存储,则不插入

    我使用 MongoDB 和 Mongoose 与 Express 来存储通过 Twitter API 检索的推文 我想避免保存重复的推文 我正在做类似的事情 TweetsModel find tweet id tweet tweet id