반응형
몽구스에서 "LIKE" 연산자를 사용하려면 어떻게 해야 합니까?
몽구스를 사용하여 쿼리할 때 문제가 발생합니다.나는 이 몽구스를 따라 코딩합니다.js: 사용자 이름 LIKE 값으로 사용자를 찾습니다.하지만 빈칸으로 돌아옵니다.
이것은 내 코드가 공백으로 반환됩니다.
var promise = UserSchema.find({name: /req.params.keyword/ }).limit(5);
저는 이 리턴 블랭크 시즈를 시도했습니다.
var n = john; var promise = UserSchema.find({name: /n/ }).limit(5);
하지만 저는 이것이 효과가 있다고 노력했습니다.
var promise = UserSchema.find({name: /john/ }).limit(5);
변수를 사용한 후 공백으로 반환하는 이유는 무엇입니까?
사용하다$regex
몽롱한
예
select * from table where abc like %v%
몽고로
var colName="v";
models.customer.find({ "abc": { $regex: '.*' + colName + '.*' } },
function(err,data){
console.log('data',data);
});
당신의 질문은 다음과 같습니다.
var name="john";
UserSchema.find({name: { $regex: '.*' + name + '.*' } }).limit(5);
아니면 간단히
const name = "John"
UserSchema.find({name: {$regex: name, $options: 'i'}}).limit(5);
대소문자를 구분하지 않는 i의 경우
이것이 제가 검색 문자열이 이름/이메일에 있는지 찾기 위한 방법입니다.누군가에게 도움이 되길 바랍니다.
const getPeerSuggestions = async (req, res, next) => {
const { search } = req.query;
const rgx = (pattern) => new RegExp(`.*${pattern}.*`);
const searchRgx = rgx(search);
const peers = await User.find({
$or: [
{ name: { $regex: searchRgx, $options: "i" } },
{ email: { $regex: searchRgx, $options: "i" } },
],
})
.limit(5)
.catch(next);
res.json(peers);
};
RegExp 개체를 사용하여 변수로 정규식을 만들고 검색에서 대소문자를 구분하지 않으려면 'i' 플래그를 추가할 수 있습니다.
const mongoose = require('mongoose');
const User = mongoose.model('user');
const userRegex = new RegExp(userNameVariable, 'i')
return User.find({name: userRegex})
없이.aggregate
저한테는 효과가 없었어요.하지만 이는 다음과 같습니다.
db.dbname.aggregate([{ "$match" : {"name" : { $regex: '.*SERGE.*', $options: 'i' } }}, { $sort: { "createdTime" : -1 }} ]).pretty()
select * from table where abc like %_keyword%
몽고로
const list = await ProductModel.find({{ pname :{ $regex : '.*'+ _keyword + '.*' }});
여기서_keyword
제품 모델을 검색하는 동안 과일, 펜 등 모든 텍스트가 될 수 있습니다.
동적 값을 사용하여 정규식 조회를 실행할 수 있습니다.RegExp
:
var promise = UserSchema.find({name: new RegExp(req.params.keyword, 'i') }).limit(5);
주의:'i'
대소문자를 구분하지 않는 옵션입니다.
언급URL : https://stackoverflow.com/questions/43729199/how-i-can-use-like-operator-on-mongoose
반응형
'programing' 카테고리의 다른 글
열 이름별 판다 데이터 프레임 가입 (0) | 2023.05.03 |
---|---|
SQL: 타임스탬프 날짜에서 1일 빼기 (0) | 2023.05.03 |
스위프트에서 초기화 중에 didSet을 호출할 수 있습니까? (0) | 2023.04.28 |
셸 명령이 실행될 때 에코하는 방법 (0) | 2023.04.28 |
모든 시트 내용을 지우는 가장 빠른 방법 VBA (0) | 2023.04.28 |