通过猫鼬将项目推入mongo数组我已经找了很好的答案,但我相信我迷失了正确的词语来描述我的目标。基本上,我有一个名为“People”的MongoDB集合,该集合的模式如下所示:people: {
name: String,
friends: [{firstName: String, lastName: String}]
}现在,我有了一个非常基本的Express应用程序,它连接到数据库,并使用一个空的朋友数组成功地创建了“People”。在应用程序的次要位置,有一个表单可以添加朋友。表单接受FirstName和LastName,然后使用name字段发布,并引用适当的People对象。我很难做的是创建一个新的朋友对象,然后将它“推”到“朋友”数组中。我知道,当我通过mongo控制台执行此操作时,我使用了UPDATE函数,并将$Push作为查找条件之后的第二个参数,但我似乎找不到让猫鼬这样做的适当方法。db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});最新情况:所以艾德里安的回答很有帮助。以下是我为实现我的目标所做的事情。在app.js文件中,我使用app.get('/addfriend', users.addFriend);在我的users.js文件中exports.addFriend = function (req, res, next){var friend = {"firstName": req.body.fName, "lastName": req.body.lName};Users.findOneAndUpdate({name: req.user.name}, {$push: {friends: friend}});};
3 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
var friend = { firstName: 'Harry', lastName: 'Potter' };
person.friends.push(friend);person.save(done);
PersonModel.update( { _id: person._id }, { $push: { friends: friend } }, done);
饮歌长啸
TA贡献1951条经验 获得超3个赞
这个 $Push 运算符将指定的值追加到数组中。
{ $push: { <field1>: <value1>, ... } }
$Push 添加以值作为其元素的数组字段。
var objFriends = { fname:"fname",lname:"lname",surname:"surname" };Friend.findOneAndUpdate( { _id: req.body.id }, { $push: { friends: objFriends } }, function (error, success) { if (error) { console.log(error); } else { console.log(success); } });)
- 3 回答
- 0 关注
- 589 浏览
添加回答
举报
0/150
提交
取消