2015-02-18 18 views
5


Từ nút js, tôi cố truy xuất tài liệu dựa trên từ khóa không phân biệt chữ hoa chữ thường. Khi tôi thử trực tiếp từ giao diện điều khiển db mongo, tôi có thể xem kết quả.

db.users.findOne({"displayName":{$regex: /.*abc./, $options:"i"}}) 

Nhưng khi tôi cố gắng giống nhau trong nút js, tôi nhận được kết quả trống.

var selector = { "displayName": {$regex: "/.*abc./", $options:"i"}} 

là do cụm từ thông dụng không có trong javascript.
Bất cứ ai có thể vui lòng giúp tôi trong việc này.

+0

http://stackoverflow.com/questions/11073863/mongodb-regular-expression-search-starts-with-using-javascript-driver-and-node –

Trả lời

8

Giá trị $regex cần phải là mẫu chuỗi phù hợp hoặc đối tượng biểu thức chính quy. Khi chuyển một mẫu chuỗi, bạn không bao gồm các dấu phân cách / như bạn đang làm trong mã node.js của mình.

Vì vậy, một trong những có thể làm việc trong Node.js:

var selector = {"displayName": {$regex: ".*abc.", $options:"i"}} 

HOẶC

var selector = {"displayName": {$regex: /.*abc./, $options:"i"}} 
7

bạn có thể xin vui lòng thử thế này, Nó làm việc cho tôi.

var getValue='abc'; 
var regexValue='\.*'+getValue+'\.'; 
db.users.findOne({"displayName":new RegExp(regexValue, 'i')}) 
Các vấn đề liên quan