Python 3.x 如何在mongodb中保存更新后的对象数组?

Python 3.x 如何在mongodb中保存更新后的对象数组?,python-3.x,database,mongodb,flask,flask-pymongo,Python 3.x,Database,Mongodb,Flask,Flask Pymongo,所以我有这个mongodb文档(见下文) 我正在用这个donateList和requestList更新我的mongodb文档。 所以这里的情况是:如果我的网络应用程序中有一个用户,捐赠一本书。我想通过更新文档来保存booksbookid。但是因为它每次都会更新文档,所以我无法保存以前的bookid的。与请求列表案例相同的gose。每次用户捐赠或请求书籍时,我只想保存bookid 代码 @app.route('/donate', methods=['GET', 'POST']) @app.rou

所以我有这个mongodb文档(见下文) 我正在用这个donateListrequestList更新我的mongodb文档。 所以这里的情况是:如果我的网络应用程序中有一个用户,捐赠一本书。我想通过更新文档来保存booksbookid。但是因为它每次都会更新文档,所以我无法保存以前的bookid的。与请求列表案例相同的gose。每次用户捐赠或请求书籍时,我只想保存bookid

代码

@app.route('/donate', methods=['GET', 'POST'])
@app.route('/donate books', methods=['GET', 'POST'])
def donate_books():
    form = DonateBooks()
    if 'email' in session and request.method == 'GET':
        return render_template('donate.html', title="Donate Books", form=form)
    elif 'email' in session and request.method == 'POST':
        if form.validate() == False:
            flash('All fields are required !')
            return render_template('donate.html', title="Donate books", form=form)
        else:
            donate = mongo.db.mylogin
            Donating_books = donate.insert(
                {'bookname': form.bookname.data, 'bookdesc': form.description.data, 'donatedby': session['username']})
            flash('Successfully donated !', 'success')
            bookId = donate.find_one({"bookname" : form.bookname.data })
            final_id =  dict(bookId)
            new_id = final_id['_id']
            inserting_id = donate.update_one({'name' : session['username']}, {'$set': {"donateList": [{"bookid": new_id}], "requestList" : [{"bookid" : new_id}]}})
            return render_template('donate.html', title='Donate Books', form=form)
    else:
        flash('Please Login/Sign Up first to Donate Books !')
        return redirect(url_for('home'))
您只需在更新中使用而不是
$set
,如下所示:

inserting_id = donate.update_one({'name' : session['username']}, {'$addToSet': {"donateList": {"bookid": new_id}, "requestList" : {"bookid" : new_id}}})

你能在网上使用jsoneditor上的共享集合吗?我要试试,我是mongodb的新手。@tom slabbaert,哇,这个
$addToSet
方法奏效了!我接受你的回答。