【发布时间】:2017-09-07 22:37:48
【问题描述】:
我对 MongoDb 有一些小问题。我有 2 个收藏:拍卖和用户。在“用户”中,我显然存储了用户(邮件、姓名……等)。在拍卖中,我存储了产品(创建日期、创建者、关注者、邀请、图像)。现在,我想在每个用户的仪表板中显示他关注的产品(当他点击按钮关注时,他的名字存储在“FollowedBy”中)。如果我必须在后端过滤,一切都很清楚,相反,我想从数据库中加载所有数据,然后在前端使用 angularJs 对其进行过滤。
使用 createdBy 这样的简单字段很容易:如果我有一个名为“Alex”的用户(例如),我只能在 createdBy 与 Alex(或其他所有用户)匹配时显示数据。但同样的事情不适用于像“FollowedBy”这样的数组字段。如果在产品“表”中创建者:“Mark”,FollowedBy:“Alex”和“Jack”,我可以轻松过滤所有产品以仅显示 Mark 的产品,但我不明白如何仅显示产品Alex,因为这个字段是一个数组。
这是我的后端路线。
app.get('/api/dashboard', function (req, res) {
AllAuctions
.find({}, function (err, auctions) {
if (err)
res.send(err);
console.log(auctions);
res.send(auctions);
});
});
我用 $http 和 angularJs 加载它:
$http.get('/api/dashboard').then(function (AllAuctions) {
$scope.allauctions = AllAuctions.data;
});
如果我必须过滤“createdBy”字段,我可以这样做:
<div class="panel panel-default" >
<div class="panel-heading">My Auctions</div>
<div class="panel-body">
<ul class="list-group" ng-repeat="allauction in allauctions">
<li class="list-group-item" ng-show="allauction.createdBy=='Alex'">
<img ng-src="{{allauction.imgUrl}}">
<div class="title"> {{allauction.title}} </div>
</li>
</ul>
</div>
</div>
但我不明白如何过滤这样的字段:
FollowedBy: [
Shelly.name,
Dario.name
]
仅显示 Dario 之后的产品。
【问题讨论】:
-
发布你的代码到现在你做了什么
标签: angularjs node.js mongodb mongoose