- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在尝试在 Mongoose 中执行 Bulkwrite 查询,但我不知道由于什么原因它没有抛出错误
let input = [
{
"variantId": "5e1760fbdfaf28038242d676",
"quantity": 5
},
{
"variantId": "5e17e67b73a34d53160c7252",
"quantity": 13
}
]
try{
let bulkArr = [];
for (const i of input) {
bulkArr.push({
updateOne: {
"filter": { "_id": Mongoose.Types.ObjectId(i.variantId) },
"update": { $inc: { "stocks": - i.quantity } }
}
})
}
await Variant.bulkWrite(bulkArr)
}
catch(e){
console.log(e);
}
我尝试更新数据库中不存在的值,我也尝试将库存更新为负值,明确设置为 min:0以下两个查询都应该抛出错误。但没有抛出错误。
最佳答案
更新不存在的文档不被视为写入错误。您可以console.log
结果来查看它只是告诉您匹配元素的数量:
let result = await Test.bulkWrite(bulkArr);
console.log(result);
打印:
...
nMatched: 0,
...
使用负值运行 $inc
仍然有效 - 您可以这样做,即使您有像 min:0
这样的验证规则,它也不会被应用,因为 $inc
在数据库服务器上执行,而 mongoose 不知道在此操作后您的字段值是否会变为负值。当您想要插入新文档或使用 .save()
方法替换现有文档时,将应用 min
规则。
那么如何得到错误呢?尝试通过将相同的值插入到唯一索引中来违反唯一键 - 这种情况会显式引发异常。
关于node.js - MongoDb Bulkwrite 似乎没有抛出任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59727681/
我正在使用 Go 的官方 mongodb 驱动程序。我获取一个 CSV 并逐行读取它,直到达到 1000 行,然后我解析数据并将其插入到数据库中。我假设它需要一个恒定的内存,因为批量写入的数据总是相同
我正在尝试在 MongoCollection 中插入/更新许多记录。我有一份需要更新的文档列表。 List Documents; 该列表包含一些要插入的新记录以及其他需要更新的现有记录。我正在研究方法
我一直在尝试在 Mongoose 中执行 Bulkwrite 查询,但我不知道由于什么原因它没有抛出错误 let input = [ { "variantId": "5e176
出于某种原因,我找不到有关如何在 for 循环中设置 await 的相关文章。我的想法是,我想在每 500 个条目中分块 bulkWrite。 for 循环外的 await 工作正常,但是在 for
对于我的测试套件,我想在数据库中批量写入测试信息,然后批量删除在整个测试过程中输入的任何测试信息以恢复到干净状态。为此,我在数据库上运行 bulkWrite,我将通过 nodeJS 的 require
AFAIK,这两个操作都可以更新多个文档。如果是这样,两者之间有什么区别? 最佳答案 只是引用 API docs这里 bulkWrite Sends multiple insertOne, updat
上下文: 我正在尝试批量插入数据数组,并附加一个计算字段:“状态”。 状态应该是: - “New”表示新插入的文档; - 对于数据库中存在但传入数据集中不存在的文档,“已删除”; - 解释字段价格演变
下面的脚本在 mongo bulkWrite op 语法中有一个错误:$setOnInsert: { count:0 }, 是不必要的,因此 mongo 抛出一个异常:“无法更新'count'和'co
我在 bulkWrite 中有 insertOne 和 updateOne 如下: async function bulkWrite(users) { await users.bulkWrite(
我正在尝试批量写入一些更新,除了 upsert 之外的所有内容都在工作。 我的代码正在完美地更新所有项目,并且从未出现过任何错误。 这里的问题是使用 updateOne 的批量插入没有更新。 (这是我
我正在从 mgo 驱动程序迁移,我的函数如下所示: queue := collection.Bulk() for j := range changes { .. queue.Updat
我正在为 Ionic 前端开发 LoopBack 后端。它使用 MongoDB 作为数据库。 在 package.json 中,我尝试将依赖项 loopback-connector-mongodb 从
我有这两个子文档,它们的结构基本相同。每个文档都包含一个名为 scheduleInfo 的对象数组。该数组的结构如下。 设备列表 scheduleInfo: [{month: String, hour
我是一名优秀的程序员,十分优秀!