问题标签 [mongodb-nodejs-driver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 MongoDB 文档中移动元素
背景:
客户是具有名称字段的对象。
线是具有以下字段的对象:
inLine
- 一系列客户currentCustomer
- 一个客户processed
- 一系列客户
集合“行”包含作为行对象的文档。
问题:
我正在尝试实现一个可以执行以下操作的程序:
- 推
currentCustomer
到processed
- 设置
currentCustomer
为第一个元素inLine
- 弹出第一个元素
inLine
由于一个字段的新值取决于另一个字段的先前值,因此原子性在这里很重要。
到目前为止我尝试了什么:
天真的方法
但是,currentCustomer
它被设置为一个字面意思是“$inLine.0”processed
的字符串,并且有一个字面意思是“$currentCustomer”的字符串。
聚合方法
但是,我收到以下错误:
MongoError:管道阶段规范对象必须只包含一个字段。
多阶段聚合方法
但是,$pop
和$push
是无法识别的管道阶段名称。
我尝试只使用$set
阶段来制作它,但它最终变得非常丑陋,我仍然无法让它工作。
node.js - 在 mongoose 上使用 MongoDB Node.js 驱动程序的优缺点,反之亦然
我正在开发一个使用 node.js 作为后端的 Web 应用程序项目。所以我使用 mongodb 数据库来存储和创建记录。当我深入研究 node.js 的 mongodb 驱动程序时,我发现有两个官方非常有名的框架可以干扰 monogdb 数据库。MongoDB Node.js 驱动程序和 Mongoose。
我想知道使用 MongoDB Node.js 驱动程序优于 mongoose 和 mongoose 优于 MongoDB Node.js 驱动程序的优缺点。
node.js - MongoDB 客户端字段级别加密 - NodeJS 驱动程序 - 未在本地密钥库的数据密钥文档中创建 keyAltNames 字段
我一直在关注本指南 -如何使用 MongoDB Client-Side Field Level Encryption (CSFLE) with Node.js/来测试 MongoDB CSFLE。
为此,在本地密钥库存储中创建数据密钥的步骤https://developer.mongodb.com/how-to/client-side-field-level-encryption-csfle-mongodb-node/#create- a-data-key-in-mongodb-for-encrypting-and-decrypting-document-fields数据密钥已成功创建,但 keyAltName 未附加到数据密钥的文档中。
我对此进行了多次测试,我的代码没有任何问题,我正在按照指南进行操作。我不明白是什么导致了这个问题。数据键创建成功,但没有 keyAltNames 字段。非常感谢您的帮助。
与数据密钥文档创建相关的代码
结果文件
包 JSON MongoDB 驱动程序/MongoDB 客户端加密 NPM 包版本
node.js - 如何在 node.js 中将 Mongodb 一个实例用于不同的不同模块
我在 node.js 中使用 mongodb 数据库和 mongodb 模块。我想知道如何将一个 mongodb 实例用于不同的模块?
我在 app.js 中创建了一个 mongodb 数据库实例。对于路由,我使用了另一个模块 myroutes.js,我想在 myroutes.js 中重新使用相同的 mongodb 实例(我已经在 app.js 中创建)。
我该怎么做?我尝试使用 app.set() 但它不起作用。
node.js - 嵌套对象数组的 MongoDB 查询优化
我需要有关嵌套对象数组的查询优化的帮助。
我们有大量文档的集合,每个文档都包含嵌套的对象数组,最高可达 3 级,如下所示:
集合名称:产品
收集的文件总数:2000万
每个文档的大小:> = 500 kb
我为我的产品系列添加了以下索引,如下所示,
products.id 上的索引
{“身份证”:1}
嵌套数组文档的索引
{ "products.sellers.seller_id":1 }
我的查询:
我的问题是查询总是在字段 id 上获取第一个索引,并且查询花费了大约 800 毫秒的时间,我需要对其进行优化。
javascript - mongo 客户端:如何在单独的文件中重用客户端?
这是 db.js 文件
我从我的 server.js 中调用了 connectWithMongoDb 函数。db 连接成功。但问题是我不能重用client
. 例如,我想为集合创建一个单独的目录。(为了得到一个我需要client
对象的集合)
所以,这是我的 collection.js 文件
但是一旦调用此文件(collection.js),问题就会出现。
我收到此错误:
javascript - 如何在此应用程序中启动 mogodb?
所以这家公司给了我在这个节点 js 应用程序中启动 MongoDB 的任务。我从未使用过 MongoDB,我不确定如何连接应用程序上的数据库。我只需要连接到数据库,请大家帮忙。
这是使用 MacOs catalina 的 github 和我:
node.js - mongodb,在附加到数组时检查键是否存在
注意:检查密钥是否books
存在,如果不存在则创建而不是更新它。
我正在使用带有 nodejs 的 mongodb 驱动程序。
在db.collection('userData')
文档中是这样的:
插入新书条目时,如何检查文档中是否存在数组books
,如果不存在则在文档中添加一个键books
,然后插入书条目。
node.js - 如何使用 mongodb 驱动程序在 mongodb node js 中合并多个集合
我有 3 个收藏。我想组合这些并从合并的数据中过滤数据。
商业收藏
优惠收集
产品请求集合
从业务集合中,我需要获取 products.media_urls 中包含视频的产品,同样从 offer 中获取 product_request 集合,我想获取 media_urls 中包含视频的项目。我想从 product、offers、product_request 中获取项目,它们的 media_url 数组中有视频。
我想组合这些集合并过滤只有视频的 media_urls。对于单个集合,我使用正则表达式完成了过滤。
但我无法合并多个集合。当我使用放松。重复数据来了。
我的预期输出是
sveltekit - 如何在 SvelteKit 项目中使用 mongodb?
我用import { MongoClient } from 'mongodb';
, (mongodb 的版本是 4.0.0-beta.5) 导入了 mongodb,它在svelte-kit dev
and中运行良好svelte-kit preview
,但是当我尝试用 启动服务器时node build
,它抛出Error: Dynamic require of "os" is not supported
. 如何配置 sveltekit 或 vite 以在生产中导入 mongodb?