小编bar*_*gro的帖子

在Express中多次SELECT查询后呈现视图

我在Node.JS和Express框架中有点新,我的代码有一个很大的问题:

app.get('/student', function(req, res) {
    var dbRequest = 'SELECT * FROM Students WHERE IDCard = \'' + req.query['id'] + '\'';
    db.all(dbRequest, function(error, rows) {
        if(rows.length !== 0) {
            /* Save data. */
        }   
        else
            res.render('incorrect_student'); /* Render the error page. */
    });

    dbRequest = 'SELECT * FROM Groups WHERE Name = \'' + req.query['group'] + '\'';
        db.all(dbRequest, function(error, rows) {
            /* Add selected data to previous saved data. */
        }
    });
    res.render('student', {data: /* data from both queries above */}); …
Run Code Online (Sandbox Code Playgroud)

node.js express

8
推荐指数
1
解决办法
8876
查看次数

MongoDB Java API:全文搜索

我在使用Java API for MongoDB时遇到问题.我使用Robomongo创建了一个查询:

db.collection.find(
    {$text : {$search : "\"expression\" keyword"}},
    {score : {$meta : "textScore"}}
).sort({score : {$meta : "textScore"}})
Run Code Online (Sandbox Code Playgroud)

现在我想使用Java API创建相同的查询:

DBObject searchCommand = new BasicDBObject(
    "$text", new BasicDBObject("$search", "\"expression\" keyword")
).append(
    "score", new BasicDBObject("'$meta'", "textScore")
);

DBObject sorting = new BasicDBObject(
    "score", new BasicDBObject("'$meta'", "textScore")
);

DBCursor result = collection.find(searchCommand).sort(sorting);
Run Code Online (Sandbox Code Playgroud)

问题是这段代码不起作用.查询:

DBObject searchCommand = new BasicDBObject(
    "$text", new BasicDBObject("$search", "\"expression\" keyword")
);
Run Code Online (Sandbox Code Playgroud)

工作得很好.在追加第二部分之后,所有结果都变得不可见.更重要的是,这一行:

DBCursor result = collection.find(searchCommand).sort(sorting);
Run Code Online (Sandbox Code Playgroud)

抛出MongoException(BadValue错误的排序规范).当我删除sort()方法调用时,Exception不存在,但我仍然没有任何结果(如果我追加"得分").

我找到了解决这个问题的方法,但是使用了Spring.我不想使用任何其他库.另外,我是MongoDB的初学者.谢谢你的帮助和时间,欢呼.


UPDATE.问题解决了.将"score"附加到查询searchCommand作为find()的第一个参数传递是错误的."得分"应作为find()方法的第二个参数在单独的DBObject中传递,如下所示:

DBObject search = new BasicDBObject(
    "$text", new …
Run Code Online (Sandbox Code Playgroud)

java full-text-search mongodb

5
推荐指数
1
解决办法
2708
查看次数

标签 统计

express ×1

full-text-search ×1

java ×1

mongodb ×1

node.js ×1