Javascript 如何在数组mongoDB中追加
在搜索特定对象后,如何在数组中追加内容,数据库如下所示:Javascript 如何在数组mongoDB中追加,javascript,database,mongodb,append,Javascript,Database,Mongodb,Append,在搜索特定对象后,如何在数组中追加内容,数据库如下所示: { "_id": { "$oid": "608a0f3628588a3daca019c6" }, "username": "paul", "password": "cacavaca", "question": "q1
{
"_id": {
"$oid": "608a0f3628588a3daca019c6"
},
"username": "paul",
"password": "cacavaca",
"question": "q1",
"answer": "cutu",
"friends": [mir],
"groups": []
}
{
"_id": {
"$oid": "608a0f4328588a3daca019c7"
},
"username": "mir",
"password": "123456",
"question": "q1",
"answer": "cutu",
"friends": [],
"groups": []
}
我想通过用户名:paul搜索对象,并在friends数组中追加alex,我已经尝试过了,但不是wokring:
MongoClient.connect(uri, function(err, db) {
var dbc = db.db("chat");
dbc.collection("accounts").find({username: { $eq: user}}).update( [
{
$push: {
friends:alex
}
}
])
db.close();
});
这是正确的方法:
var user = request.body.user;
var new_friend = request.body.new_friend;
MongoClient.connect(uri, function(err, db) {
var dbc = db.db("chat");
dbc.collection("accounts").update(
{username: { $eq: user}},
{
$push: {
friends:new_friend
}
}
)
db.close();
});
我认为与其使用
.find()
方法,不如像这样使用updateOne()
:
MongoClient.connect(uri, function(err, db) {
var dbc = db.db("chat");
dbc.collection("accounts").updateOne({username: {$eq: user}}, {
$push: {
friends: alex
}
});
db.close();
});
假设user
和alex
是上面定义的变量
另外,可能您只能编写{username:user}
,而不需要$eq
,但这取决于您的代码和逻辑