![](/img/trans.png)
[英]Waterline ORM (sails.js) conditions with NOT Equal in query
[英]Waterline (Sails.js): AND conditions
我将mongodb与sails.js一起使用,该模型查询包含torrent文件标题的模型。 但是我无法使用“ AND”条件执行水线查询。 我已经用几种方法尝试过,但是大多数方法都返回空值,或者简单地讲,永不返回。
例如,数据库包含带有以下内容的条目: "title": "300 Rise Of An Empire 2014 720p BluRay x264-BLOW [Subs Spanish Latino] mkv"
逐行添加每个查询参数时:
var query = Hash.find();
query = query.where({ "title": { "contains": "spanish" } });
query = query.where({ "title": { "contains": "2014" } });
query = query.where({"or": [ { "title": { "contains": "720p" } }, { "title": { "contains": "1080p" } } ] });
它返回包含“ 2014” AND(“ 720p”或“ 1080p”)的条目,其中一些还包含“ spanish”,但我认为这只是一个巧合。
如何指定“西班牙语”与“ 2014”与(“ 720p”或“ 1080p”)?
谢谢!
有一个解决方案,但实际上是一个mongo解决方案:
query = query.where({"$and": [ { "title": { "contains": "720p" } }, { "title": { "contains": "1080p" } } ] });
注意$and
键吗?
从sails-mongo来源:
/**
* Parse Clause
*
* <clause> ::= { <clause-pair>, ... }
*
* <clause-pair> ::= <field> : <expression>
* | or|$or: [<clause>, ...]
* | $or : [<clause>, ...]
* | $and : [<clause>, ...]
* | $nor : [<clause>, ...]
* | like : { <field>: <expression>, ... }
*
* @api private
*
* @param original
* @returns {*}
*/
用这个:
var query = {
title: [
{ contains: "spanish"},
{contains: "2014"}
],
or: [
{title: { contains: "720p" } },
{title: { contains: "1080p" } },
]
};
Model.find(query).exec(function(err,items) {
....
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.