假設我當前名為 Fruits 的集合如下所示:
{"_id" : ObjectId("xyz...."), "name" : "Apple", "rating" : 7}
{"_id" : ObjectId("abc...."), "name" : "Banana", "rating" : 9}
{"_id" : ObjectId("lmn...."), "name" : "Kiwi", "rating" : 8}
現在,如果我打算僅在第二個檔案(即名稱:Banana)中添加一個新的鍵值對(鍵命名的數量),我將使用 mongoDB 在終端中執行以下操作:
db.fruits.updateOne({name : "Banana"},{$set:{quantity : 20}})
現在我的收藏將如下所示:
{"_id" : ObjectId("xyz...."), "name" : "Apple", "rating" : 7}
{"_id" : ObjectId("abc...."), "name" : "Banana", "rating" : 9}
{"_id" : ObjectId("lmn...."), "name" : "Kiwi", "rating" : 8, "quantity" : 20}
那么我如何在我的 app.js 中使用 mongoose 實作同樣的事情。我不想更改所有檔案的整個架構,因為 mongoDB 是一個 NOSQL,并且結構不應該是強制性的。
uj5u.com熱心網友回復:
您應該定義一個與集合相對應的架構,我們稱之為 fruit.model.js:
const mongoose = require('mongoose');
const fruitSchema = new mongoose.Schema({
name: String,
quantity: Number
});
const Fruit = mongoose.model('Fruit', fruitSchema);
module.exports = Fruit;
并使用它使用以下findOneAndUpdate方法運行您的查詢:
const mongoose = require('mongoose');
const Fruit = require('./fruit.model');
const updateFruit = async () => {
await Fruit.findOneAndUpdate({ name: "Banana" }, { quantity: 20})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/390977.html
標籤:javascript 节点.js 数据库 MongoDB 猫鼬
