问题
I'm trying to find a person by either their name OR identifier using StrongLoop's Model.find syntax (documentation here: http://apidocs.strongloop.com/loopback/#modelfindfilter-callback).
But I can't figure out how to specify the OR condition.
I can match both the name AND identifier using this syntax:
person.find({
where: {
'name.text': {like: 'Dave'},
'identifier.value': {like: '3303927'}
}
}, callback);
But I'd like to be able to match name OR identifier doing something like this:
person.find({
where: {
'name.text': {like: 'Dave'} ||
'identifier.value': {like: '3303927'}
}
}, callback);
Either this isn't supported or I can't get the syntax correct. It appears this is supported via the REST API (doc: http://docs.strongloop.com/display/DOC/Model+REST+API#ModelRESTAPI-Findmatchinginstances) so I'm hoping it's supported the way I'm trying to accomplish it.
Thanks!
回答1:
The AND/OR operator is added recently. Please see examples of usage at:
https://github.com/strongloop/loopback-datasource-juggler/blob/master/test/basic-querying.test.js#L156
The syntax is:
person.find({
where: {
or: {
'name.text': {like: 'Dave'},
'identifier.value': {like: '3303927'}
}
}
}, callback);
回答2:
person.find({
where: {
or: [
{'name.text': {like: 'Dave'},
{'identifier.value': {like: '3303927'}
]
}
}, callback);
来源:https://stackoverflow.com/questions/23770672/strongloop-loopback-model-find-with-or-condition-on-where-filter