【发布时间】:2015-02-12 15:46:32
【问题描述】:
我的 NetworkSchema 中有一个数组,我正在尝试使用 mongoose 中的 findOneandupdate 使用另一个条目进行更新
我的模型:
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var NetworkSchema = new Schema({
UserID: {
type: String,
default: '',
trim: true
},
NetworkList: [{
Fid: {
type: Schema.ObjectId,
ref: 'User'
}
}]});
HTML:
<div ng-controller="AuthenticationController" style="margin-top: 50px">
<div ng-controller="NetworksController">
<ul>
<li ng-repeat="Network in Networkfriends">
{{Network.firstName}}
<button type="submit" class = "btn btn-default" data-ng-click="update(Network._id)">Add as a Friend</button>
</li>
</ul>
<button type="submit" ng-click="showlist()">show</button>
</div>
</div>
网络控制器:
$scope.update = function(FriendID)
{
var UserID = this.authentication.user._id;
console.log('User ID :' +UserID);
var NetworkList = [{
Fid: this.FriendID
}];
$http.post('/networks/update',{UserID: UserID, FriendID: FriendID}, $scope.credentials).success(function(response){
console.log(JSON.stringify(response));
});
}
Network.Server.Controller:
var mongoose = require('mongoose'),
errorHandler = require('./errors.server.controller'),
Network = mongoose.model('Network'),
_ = require('lodash');
util = require('util');
exports.update = function(req, res) {
var query={'UserID':req.body.UserID};
var NetworkList = [{Fid: req.body.FriendID}];
var update = {'NetworkList' :NetworkList};
Network.findOneAndUpdate(query,update,function(err){
if (err) {
return err;
} else {
NetworkList.push(req.body.FriendID);
}
});
};
我想从 usersList 添加用户的 objectID,正如您在我的 HTML 页面中从 NetworkFriends 获得的,每当我点击 Add as a Friend按钮,我得到的是我的数据库中的一个新条目,其 ObjectID 为 NetworkFriend,我希望通过 Add as a Friend 按钮以逗号分隔多个 NetworkFriend 的 objectID
这是我的数据库中的条目:
{
"NetworkList" : [
{
"Fid" : ObjectId("5486fab40bc27314276be8cf"),
"_id" : ObjectId("548d6ed5d6994cac219f536f")
}
],
"UserID" : "547eaaab6c39471c3f5aebb6",
"__v" : 0,
"_id" : ObjectId("548adbc8b7eac44013bf188d")
}
我的目标是:
{
"NetworkList" : [
{
"Fid" : ObjectId("5486fab40bc27314276be8cf"),"(objectID of another friend with comma separated like this"),
"_id" : ObjectId("548d6ed5d6994cac219f536f")
}
],
"UserID" : "547eaaab6c39471c3f5aebb6",
"__v" : 0,
"_id" : ObjectId("548adbc8b7eac44013bf188d")
}
【问题讨论】: