【发布时间】:2017-02-24 12:10:37
【问题描述】:
我意识到在 node.js 中我构建了一个查询,例如:
if (hashtagsInput != undefined) {
var hashtags = hashtagsInput.split(",");
for(var i=0; i<hashtags.length; i++) {
query = query.or([{ 'hashtags': hashtags[i] }]);
}
}
if (friends != undefined) {
var friendsSplitted = friends.split(",");
for(var i=0; i<friendsSplitted.length; i++) {
query = query.or([{ 'facebook_username': friendsSplitted[i] }]);
}
}
那么查询是:
..., '$or': [ { hashtags: 'test1' }, { hashtags: 'test2' }, {
facebook_username: 'XXXXXXXXXXXX' }, { facebook_username: 'YYYYYYYYYYYYYYY' },
{ facebook_username: 'ZZZZZZZZZZZZ' }],...
这将找到具有标签test1 或test2 或具有fb_username XXXXXX 或YYYYYYY 或ZZZZZZZ 的所有记录。
但是我如何在node.js 代码中编写查询,以便当用户放置主题标签时,查询会获取具有test1 或test2 AND fb_username XXXXXX 或YYYYYYY 或ZZZZZZZ 的条目?
如果用户不提供任何主题标签,那么它只能获取 fb_accounts,反之亦然 - 如果用户不提供 fb,那么它只关注主题标签。
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query