[MONGODB] 방법 "과 같은"로 MongoDB의 쿼리를 하는가?
MONGODB방법 "과 같은"로 MongoDB의 쿼리를 하는가?
나는 쿼리와 같은 SQL과 쿼리 뭔가 원하는 :
SELECT * FROM users WHERE name LIKE '%m%'
어떻게 MongoDB를 동일한 달성 할까? 나는 설명서 등에 연산자를 찾을 수 없습니다.
해결법
-
==============================
1.즉 될 것이다 :
즉 될 것이다 :
db.users.find({"name": /.*m.*/})
또는 유사한 :
db.users.find({"name": /m/})
당신은 "m"어딘가에 포함 뭔가를 찾고있어 (연산자 SQL '%'는 정규식에 해당 '. *')이 아닌 문자열의 시작 부분에 고정 "m"가 무엇인가를.
참고 : MongoDB의는 SQL에서 "LIKE"보다 더 강력한 정규 표현식을 사용합니다. 정규 표현식으로 당신은 당신이 상상하는 것이 어떤 패턴을 만들 수 있습니다.
정규 표현식에 대한 자세한 정보를 원하시면이 링크를 참조 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
-
==============================
2.
db.users.insert({name: 'paulo'}) db.users.insert({name: 'patric'}) db.users.insert({name: 'pedro'}) db.users.find({name: /a/}) //like '%a%'
아웃 : 파울로, 패트릭
db.users.find({name: /^pa/}) //like 'pa%'
아웃 : 파울로, 패트릭
db.users.find({name: /ro$/}) //like '%ro'
아웃 : 페드로
-
==============================
3.에서
에서
넌 할 수있어:
db.users.find({'name': {'$regex': 'sometext'}})
-
==============================
4.PHP에서는 다음과 같은 코드를 사용할 수 있습니다 :
PHP에서는 다음과 같은 코드를 사용할 수 있습니다 :
$collection->find(array('name'=> array('$regex' => 'm'));
-
==============================
5.당신은 몽고에 그것을 위해 정규식 사용합니다.
당신은 몽고에 그것을 위해 정규식 사용합니다.
예컨대 : db.users.find ({ "이름"/ ^ m /})
-
==============================
6.많은 답변이 이미 있습니다. 내가 정규식 문자열 검색에 대한 요구 사항 및 솔루션의 다른 유형을 제공하고 있습니다.
많은 답변이 이미 있습니다. 내가 정규식 문자열 검색에 대한 요구 사항 및 솔루션의 다른 유형을 제공하고 있습니다.
당신은 같은 단어 즉를 포함하는 정규식으로 할 수 있습니다. 또한 당신이 $ 옵션을 사용할 수 있습니다 => 난에 대한 대소 문자 구분 검색
문자열을 포함합니다
db.collection.find({name:{'$regex' : 'string', '$options' : 'i'}})
합니까뿐만 아니라 정규식 문자열을 포함합니다
db.collection.find({name:{'$regex' : '^((?!string).)*$', '$options' : 'i'}})
정확한 대소 문자를 구분 문자열
db.collection.find({name:{'$regex' : '^string$', '$options' : 'i'}})
문자열로 시작
db.collection.find({name:{'$regex' : '^string', '$options' : 'i'}})
문자열 끝
db.collection.find({name:{'$regex' : 'string$', '$options' : 'i'}})
책갈피, 당신이해야 할 수있는 다른 변경에 대한 참조로이 보관하십시오.
-
==============================
7.당신이 개 선택할 수 있습니다
당신이 개 선택할 수 있습니다
db.users.find({"name": /string/})
또는
db.users.find({"name": {"$regex": "string", "$options": "i"}})
두 번째에서 당신은 "내가"옵션의 경우를 구분을 사용하여 찾을처럼, 더 많은 옵션을 가지고있다. 그리고 "문자열"에 대해, 당신은 같이 사용할 수있다 ".string." (% 문자열 %), 또는 "문자열입니다. *"(문자열 %)와 ". * 문자열) 예를 들어 (% 문자열). 당신이 원하는대로 당신은 정규 표현식을 사용할 수 있습니다.
즐겨!
-
==============================
8.Node.js를를 사용하는 경우, 그것은 당신이 쓸 수 있다고 말한다 :
Node.js를를 사용하는 경우, 그것은 당신이 쓸 수 있다고 말한다 :
db.collection.find( { field: /acme.*corp/i } ); //or db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } );
또한, 당신이 쓸 수 있습니다 :
db.collection.find( { field: new RegExp('acme.*corp', 'i') } );
-
==============================
9.이미 유 해답을 가지고 있지만, 소문자 구분와 정규식과 일치
이미 유 해답을 가지고 있지만, 소문자 구분와 정규식과 일치
다음과 같은 쿼리를 사용할 수 있습니다
db.users.find ({ "name" : /m/i } ).pretty()
은 / m에서의 I / i를 소문자 구분하고 .pretty을 ()보다 꽤 출력을 제공 나타낸다
-
==============================
10.Node.js를에서 몽구스의 경우
Node.js를에서 몽구스의 경우
db.users.find({'name': {'$regex': '.*sometext.*'}})
-
==============================
11.당신은 2.6 MongoDB의 새로운 기능을 사용할 수 있습니다 :
당신은 2.6 MongoDB의 새로운 기능을 사용할 수 있습니다 :
db.foo.insert({desc: "This is a string with text"}); db.foo.insert({desc:"This is a another string with Text"}); db.foo.ensureIndex({"desc":"text"}); db.foo.find({ $text:{ $search:"text" } });
-
==============================
12.PHP의 경우처럼을 몽고. 내가 좋아하는 PHP는 몽고와 몇 가지 문제가 있었다. 내가 정규식 PARAMS을 연결하는 PHP와 함께 필드 시작을 찾을 몽고 어떤 상황에 도움이 것을 발견했다. 나는 더 많은 인기를 스레드에 기여하기 위해 여기에 게시 할 것입니다 생각
PHP의 경우처럼을 몽고. 내가 좋아하는 PHP는 몽고와 몇 가지 문제가 있었다. 내가 정규식 PARAMS을 연결하는 PHP와 함께 필드 시작을 찾을 몽고 어떤 상황에 도움이 것을 발견했다. 나는 더 많은 인기를 스레드에 기여하기 위해 여기에 게시 할 것입니다 생각
예컨대
db()->users->insert(['name' => 'john']); db()->users->insert(['name' => 'joe']); db()->users->insert(['name' => 'jason']); // starts with $like_var = 'jo'; $prefix = '/^'; $suffix = '/'; $name = $prefix . $like_var . $suffix; db()->users->find(['name' => array('$regex'=>new MongoRegex($name))]); output: (joe, john) // contains $like_var = 'j'; $prefix = '/'; $suffix = '/'; $name = $prefix . $like_var . $suffix; db()->users->find(['name' => array('$regex'=>new MongoRegex($name))]); output: (joe, john, jason)
-
==============================
13.쿼리처럼 nodejs 프로젝트 및 사용 몽구스 사용
쿼리처럼 nodejs 프로젝트 및 사용 몽구스 사용
var User = mongoose.model('User'); var searchQuery={}; searchQuery.email = req.query.email; searchQuery.name = {$regex: req.query.name, $options: 'i'}; User.find(searchQuery, function(error, user) { if(error || user === null) { return res.status(500).send(error); } return res.status(200).send(user); });
-
==============================
14.MongoDB를 나침반으로, 당신은 같은 엄격한 모드 구문을 사용합니다 :
MongoDB를 나침반으로, 당신은 같은 엄격한 모드 구문을 사용합니다 :
{ "text": { "$regex": "^Foo.*", "$options": "i" } }
(에서 MongoDB를 나침반, 그것은 '당신이 대신 "를 사용하는 것이 중요합니다)
-
==============================
15.SQL에서 '와 같은'쿼리는 다음과 같은 모양입니다 :
SQL에서 '와 같은'쿼리는 다음과 같은 모양입니다 :
select * from users where name like '%m%'
MongoDB의 콘솔에서, 그것은 다음과 같습니다 :
db.users.find({"name": /m/}) // Not JSON formatted db.users.find({"name": /m/}).pretty() // JSON formatted
생산은 더 읽을 JSON 구조 형식의 모든 장소에서 또한 매우 () 메소드의 의지.
-
==============================
16.정규식은 비싼 과정이다.
정규식은 비싼 과정이다.
또 다른 방법은 텍스트의 인덱스를 만든 다음 $ 검색을 사용하여 검색하는 것입니다.
당신이 검색 할 수 있도록하려는 필드의 텍스트 색인을 만듭니다
db.collection.createIndex({name: 'text', otherField: 'text'});
텍스트 인덱스의 문자열 검색 :
db.collection.find({ '$text'=>{'$search': "The string"} })
-
==============================
17.문이 어떤 JS 스크립트를 구축하는 곳에 당신은 사용할 수 있습니다 :
문이 어떤 JS 스크립트를 구축하는 곳에 당신은 사용할 수 있습니다 :
db.myCollection.find( { $where: "this.name.toLowerCase().indexOf('m') >= 0" } );
참조 : http://docs.mongodb.org/manual/reference/operator/where/
-
==============================
18.이동과 산화 마그네슘 드라이버에서 :
이동과 산화 마그네슘 드라이버에서 :
Collection.Find(bson.M{"name": bson.RegEx{"m", ""}}).All(&result)
여기서 결과는 잘 나가 타입의 구조체의 인스턴스입니다
-
==============================
19.다음과 같이 일치하는 정규 표현식을 사용합니다. 'I'쇼 케이스 무감각.
다음과 같이 일치하는 정규 표현식을 사용합니다. 'I'쇼 케이스 무감각.
var collections = mongoDatabase.GetCollection("Abcd"); var queryA = Query.And( Query.Matches("strName", new BsonRegularExpression("ABCD", "i")), Query.Matches("strVal", new BsonRegularExpression("4121", "i"))); var queryB = Query.Or( Query.Matches("strName", new BsonRegularExpression("ABCD","i")), Query.Matches("strVal", new BsonRegularExpression("33156", "i"))); var getA = collections.Find(queryA); var getB = collections.Find(queryB);
-
==============================
20.또한 작동 변수 템플릿 리터럴을 사용 :
또한 작동 변수 템플릿 리터럴을 사용 :
{ "FIRSTNAME": {$ 정규식 :. '^ $ {req.body.firstname} *`, $ 옵션 :'시 '}}
-
==============================
21.아래와 같이처럼 쿼리 될 것이다
아래와 같이처럼 쿼리 될 것이다
db.movies.find({title: /.*Twelve Monkeys.*/}).sort({regularizedCorRelation : 1}).limit(10);
스칼라 ReactiveMongo API에 대한,
val query = BSONDocument("title" -> BSONRegex(".*"+name+".*", "")) //like val sortQ = BSONDocument("regularizedCorRelation" -> BSONInteger(1)) val cursor = collection.find(query).sort(sortQ).options(QueryOpts().batchSize(10)).cursor[BSONDocument]
-
==============================
22.패턴 :뿐만 아니라 몽고 { 'regex_pattern' '$ 정규식'}로 자바 스크립트 / regex_pattern / 패턴 모두를 사용하는 이유가 보인다. 참조 : MongoBD 정규식 구문 제한
패턴 :뿐만 아니라 몽고 { 'regex_pattern' '$ 정규식'}로 자바 스크립트 / regex_pattern / 패턴 모두를 사용하는 이유가 보인다. 참조 : MongoBD 정규식 구문 제한
이것은 완전한 정규식 튜토리얼 아니지만, 나는 매우 위의 모호한 게시물을 투표를 본 후에 테스트를 실행하는 데 영감을했다.
> ['abbbb','bbabb','bbbba'].forEach(function(v){db.test_collection.insert({val: v})}) > db.test_collection.find({val: /a/}) { "val" : "abbbb" } { "val" : "bbabb" } { "val" : "bbbba" } > db.test_collection.find({val: /.*a.*/}) { "val" : "abbbb" } { "val" : "bbabb" } { "val" : "bbbba" } > db.test_collection.find({val: /.+a.+/}) { "val" : "bbabb" } > db.test_collection.find({val: /^a/}) { "val" : "abbbb" } > db.test_collection.find({val: /a$/}) { "val" : "bbbba" } > db.test_collection.find({val: {'$regex': 'a$'}}) { "val" : "bbbba" }
-
==============================
23.당신이 봄 - 데이터 MongoDB를를 사용하는 경우이 방법으로이 작업을 수행 할 수 있습니다 :
당신이 봄 - 데이터 MongoDB를를 사용하는 경우이 방법으로이 작업을 수행 할 수 있습니다 :
String tagName = "m"; Query query = new Query(); query.limit(10); query.addCriteria(Criteria.where("tagName").regex(tagName));
-
==============================
24.몽고 쉘 지원 정규식으로, 그 완전히 가능합니다.
몽고 쉘 지원 정규식으로, 그 완전히 가능합니다.
db.users.findOne({"name" : /.*sometext.*/});
우리는 대소 문자를 구분하는 쿼리를 원하는 경우 아래 그림처럼, 우리는, "I"옵션을 사용할 수 있습니다 :
db.users.findOne({"name" : /.*sometext.*/i});
-
==============================
25.당신이 원하는 경우 몽고에 '처럼'검색은 다음이 될 것입니다이 쿼리를 사용하여 $ 정규식으로 가야한다
당신이 원하는 경우 몽고에 '처럼'검색은 다음이 될 것입니다이 쿼리를 사용하여 $ 정규식으로 가야한다
db.product.find ({이름 : {$ 정규식 : / m / I}})
더 당신이 문서를 읽을뿐만 아니라 수 있습니다. https://docs.mongodb.com/manual/reference/operator/query/regex/
-
==============================
26.나는 MongoDB를에 MYSQL 쿼리를 번역하는 무료 도구를 발견했다. http://www.querymongo.com/ 나는 여러 쿼리 확인. 내가 거의 모든 볼로는 정확합니다. 그에 따르면, 대답은
나는 MongoDB를에 MYSQL 쿼리를 번역하는 무료 도구를 발견했다. http://www.querymongo.com/ 나는 여러 쿼리 확인. 내가 거의 모든 볼로는 정확합니다. 그에 따르면, 대답은
db.users.find({ "name": "%m%" });
-
==============================
27.(인덱스!)를 사용하여 집계 문자열 검색 :
(인덱스!)를 사용하여 집계 문자열 검색 :
db.collection.aggregate([{ $project : { fieldExists : { $indexOfBytes : ['$field', 'string'] } } }, { $match : { fieldExists : { $gt : -1 } } }, { $limit : 5 } ]);
-
==============================
28.MongoRegex는 더 이상 사용되지 않습니다. 사용 MongoDB를 \ BSON \ 정규식
MongoRegex는 더 이상 사용되지 않습니다. 사용 MongoDB를 \ BSON \ 정규식
$regex = new MongoDB\BSON\Regex ( '^m'); $cursor = $collection->find(array('users' => $regex)); //iterate through the cursor
-
==============================
29.
db.customer.find({"customerid": {"$regex": "CU_00000*", "$options": "i"}}).pretty()
우리가 문자열 패턴을 검색 할 때, 항상 우리가 확실하지 사건에 대해 때와 같은 위의 패턴을 사용하는 것이 좋습니다. 희망이 도움이!
-
==============================
30.Dipakaparmara 문자열, 디팍, Parmar
Dipakaparmara 문자열, 디팍, Parmar
db.getCollection('yourdb').find({"name":/^dee/})
및 디팍 parmar
db.getCollection('yourdb').find({"name":/d/})
Dipakaparmara 숫자, 디팍
db.getCollection('yourdb').find({"name":/mar$/})
Dipakaparmara 숫자, Parmar
from https://stackoverflow.com/questions/3305561/how-to-query-mongodb-with-like by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB의 15 분의 시간 간격에 의한 그룹 결과 (0) | 2019.11.29 |
---|---|
[MONGODB] 몽구스의 채우기 후 쿼리 (0) | 2019.11.29 |
[MONGODB] 두 날짜 사이의 객체를 찾기 MongoDB를 (0) | 2019.11.29 |
[MONGODB] MongoDB를 가진 중첩 된 배열을 업데이트 (0) | 2019.11.29 |
[MONGODB] MongoDB의 관계 : 포함 또는 참조? (0) | 2019.11.29 |