gpt4 book ai didi

javascript - 如何根据特定 id 向 mLab 数组插入新项目

转载 作者:行者123 更新时间:2023-11-30 19:01:50 24 4
gpt4 key购买 nike

我的数据库使用 mLab。我有一个列表集合,其中每个列表都有一个带有 _id、userId 和项目数组的对象。

现在我想向特定列表的数组中添加一个新项。

连接到 Mongo 的函数有新的项目对象和列表 ID。

如何找到正确的列表并将新项目添加到项目数组?

每个列表的 JSON 如下所示:

{
"_id": {
"$oid": "5ded5eb7e7179a3015b0672f"
},
"userID": "1234",
"items": [
{
"_id": "abc12345",
"name": "abc",
},
{
"_id": "abc12346",
"name": "def",
}
]
}

连接到 Mongo 的函数如下所示:

function addItem({item, listId}) {
return MongoService.connect()
.then(db => {
const collection = db.collection('lists');
//need to do something here
})
}

连接到 Mongo :(工作正常,我连接并加载列表)

function connectToMongo() {
if (dbConn) return Promise.resolve(dbConn);
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb:// ***my user and password ***';
return MongoClient.connect(url)
.then(client => {
console.log('Connected to MongoDB');
client.on('close', ()=>{
console.log('MongoDB Diconnected!');
dbConn = null;
})
dbConn = client.db()
return dbConn;
})
}
module.exports = {
connect : connectToMongo
}

最佳答案

我看到您正在使用 MongoDB 节点 native 驱动程序。关于如何使用驱动程序更新 MongoDB 文档的文档 here .

为了向 list.items 数组添加一个项目,addItem 函数应该如下所示:

function addItem({ item, listId }) {
return MongoService.connect()
.then(db => {
const collection = db.collection('lists');
// The update query below would return a promise
return collection.updateOne({
{ _id: new ObjectID(listId) }
}, { '$push': { items: item } })
})
.then(result => { // Anything you want to do with the result })
}

关于javascript - 如何根据特定 id 向 mLab 数组插入新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59439954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com