我一直在寻找答案,但我确信我已经迷失了正确的词语来形容我所追求的目标.
基本上我有一个名为'people'的mongodb集合该集合的模式如下:
people: {
name: String,
friends: [{firstName: String, lastName: String}]
}
Run Code Online (Sandbox Code Playgroud)
现在,我有一个非常基本的快速应用程序连接到数据库并成功创建一个空朋友数组的'人'.
在应用程序的辅助位置,有一个表单来添加朋友.表单接受firstName和lastName,然后使用名称字段POST,以便引用正确的人员对象.
我正在做的事情是创建一个新的朋友对象,然后将其"推送"到friends数组中.
我知道当我通过mongo控制台执行此操作时,我使用更新函数,在查找条件之后使用$ push作为我的第二个参数,但我似乎无法找到让mongoose执行此操作的适当方法.
db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});
Run Code Online (Sandbox Code Playgroud)
更新: 所以,阿德里安的回答非常有帮助.以下是我为实现目标所做的工作.
在我的app.js文件中,我使用了一个临时路由
app.get('/addfriend', users.addFriend);
Run Code Online (Sandbox Code Playgroud)
在我的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}});
};
Run Code Online (Sandbox Code Playgroud) 我最近接受了软件工程职位的采访,想要回顾一下我到达的问题和解决方案.
给定排序的数组(可能包含重复项),确定值在列表中出现的次数.
即如果array = [1,1,2,3,3,3,4,5,6,6,7],列表中有多少3个