Каков эквивалентный запрос sails «contains» в mongodb?

#sql #regex #node.js #mongodb #sails.js

#sql #регулярное выражение #node.js #mongodb #sails.js

Вопрос:

Привет, у меня есть этот запрос в sails…

  Model.find().where({ seachField : { contains:"search_key" }}).exec(cb);
 

Общее количество возвращаемых строк: 20

Когда я пытаюсь преобразовать его в node, вместо этого я использовал запрос

  db.get().collection("model").find({ seachField : { '$regex' : ".*" searchKey ".*"}}).toArray()...
 

Общее количество возвращаемых строк: 10

Могу ли я узнать, какая функция «содержит» эквивалентна MongoDB, чтобы я мог получить такое же количество результатов?

Ценю вашу помощь!

Спасибо

Комментарии:

1. Ни одно из этих утверждений не должно быть действительным. Синтаксис должен быть ` «field»: { содержит: «search_key» }` или простой монго "field": { "$regex": "search_key" } , где «field» — это поле для поиска. Я бы также предположил, что проблема, возможно, связана с or вместо.

2. привет, Нил, спасибо за ваш комментарий. Ах да, я забыл поле поиска 🙂 спасибо за исправление… Оба они работают нормально, разница лишь в том, что результаты имеют разный подсчет. Я понял это несколько часов назад, я просто добавил { «$regex» : «.*» SearchKey «.*», «$options»:’i’ } для поиска без учета регистра 🙂

Ответ №1:

Его:

 db.model.find({ seachField : new RegExp(searchKey)}).toArray()
 

Если вы знакомы с SQL, это очень полезно: http://docs.mongodb.org/manual/reference/sql-comparison /