- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在寻找一种逻辑来从数据库中的 1000 条记录中检索数据。我不能在应用程序级别做。
我有以两个双字母结尾的数据,如“ll, gg, ss, ff...”。想从数据库中检索以上述双字符结尾的单词。
我的示例数据库:
[{
"word": "Floss"
}, {
"word": "smacx"
}, {
"word": "fuzz"
}, {
"word": "grass"
}, {
"word": "dress"
}, {
"word": "puff"
}, {
"word": "cliff"
}, {
"word": "sniff"
}, {
"word": "chess"
}, {
"word": "kiss"
}, {
"word": "fell"
}, {
"word": "shell"
}]
checkarray = ['ll','gg','ll','ss'];
关于如何在数据库级别执行此操作的任何想法。应用程序级循环变得越来越高,并且花费了更多时间,因为它有近 10 万条记录。
1 Câu trả lời
您可以 use the $in with regular expression通过创建一个新的 Mảng RegExp 对象与 $in
一起使用表达式如下:
var checkarray = ['ll','gg','ll','ss'],
regex = checkarray.map(function (k) { return new RegExp(k); });
db.collection.find({
"word": { "$in": regex }
})
请记住,使用 $in
对于小型数组可能相当有效,但对于大型列表则不太有效,因为它会在索引中跳过以查找匹配的文档,或者如果没有索引可使用则遍历整个集合。 p>
Mà cònusing the $in with the regular expression , 您可以使用 $regex
运算符以竖线分隔的正则表达式模式包含 checkarray,如下所示:
var checkarray = ['ll','gg','ll','ss'],
regex = checkarray.join("|");
db.collection.find({
"word": {
"$regex": regex,
"$options": "i"
}
})
要匹配最后两个字符,请使用以下模式 \gg$\
,即将 $
Đính kèm vào $
元字符所在的模式表示字符串的结尾。例如,模式 abc$
可以匹配以下 abc, endsinabc, 123abc, ...
.
所以,对于你的后续问题
I need words which is ending of letters of checkArray, not in the middle or starting. CheckArray characters should be in ending letter of string. like "EGG" not "FILLED"
Bạn có thể làm như sau:
var checkarray = ['ll','gg','ff','ss'],
regex = checkarray.map(function (k) { return new RegExp(k+'$'); });
db.collection.find({
"word": { "$in": regex }
})
要对此进行测试,请将这些示例文档填充到测试集合中:
db.test.insert([
{ "_id": 1, "word" : "well" },
{ "_id": 2, "word" : "filled" },
{ "_id": 3, "word" : "glass" },
{ "_id": 4, "word" : "blessed" }
])
以上查询将返回带有 _id
1 和 3 的文档。
{ "_id" : 1, "word" : "well" }
{ "_id" : 3, "word" : "glass" }
关于node.js - 使用 Array 进行 MongoDB 正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36623737/
Tôi chạy Node với node --debug app HOẶC node --debug-brk app và nó phản hồi bằng cửa sổ lắng nghe trên cổng 5858 Express serv
Câu hỏi này đã có câu trả lời tại đây: Sự khác biệt giữa (int *i) và (int* i) trong ngữ cảnh của cả C và C++ là gì? [
Tôi có một ứng dụng gửi lệnh ghi cơ sở dữ liệu tới các công nhân (một số lượng rất lớn) thông qua hàng đợi tin nhắn, do đó không thể đảm bảo thứ tự nhận được các lệnh này. Tôi có hai Node
Có cách nào để truyền tùy chọn cho Node khi gọi ts-node không? Tôi đang cố gắng sử dụng một tính năng thử nghiệm trong Node và sẽ thật tuyệt nếu nó có thể hoạt động với ts-node. Đây là những gì tôi đang làm: ts-nod
Tôi có một ứng dụng Node được chứa trong container và đang chạy trên máy chủ DigitalOcean. Khi tôi cập nhật một ứng dụng trên máy chủ, ứng dụng đó phải ngừng hoạt động trong một khoảng thời gian ngắn. Để có thể cập nhật ứng dụng và tránh thời gian chết, hiện tại tôi đang đọc về Zero Downtime Deployment/Bluetooth
Tôi đang viết một ứng dụng Node.js. Tôi đang sử dụng request và Cheerio để tải một tập hợp các URL và lấy một số thông tin về trang web, bây giờ giả sử tất cả những gì tôi muốn lấy là tiêu đề: var urls = {"url_1
Tôi không thể cài đặt bất kỳ mô-đun Node.js nào mà không xuất hiện lỗi sau. Mã lỗi liên quan đến tệp package.json. Bất kỳ ý tưởng nào về lý do tại sao điều này xảy ra đều được hoan nghênh. Câu trả lời hay nhất Đây không phải là lỗi, chúng chỉ là cảnh báo. Mọi thứ phải như thế này
Nếu tôi chạy (từ thư mục dự án của tôi): supervisor javascripts/index.js tôi nhận được: /usr/bin/env: Node: không có tệp hoặc thư mục nào như vậy Nếu tôi chạy: node java
Tôi đã làm theo tất cả các bước để sử dụng Node-Inspector nhưng khi mở ứng dụng, tôi không thấy bất kỳ tập lệnh hoặc nhật ký nào trên bảng điều khiển. Ứng dụng của tôi đang chạy trên cổng 4000. Tôi nghĩ điều duy nhất có thể xung đột là ở cổng 8080
Tôi đang sử dụng rxjava2 trong Android và đôi khi tôi gặp phải một vấn đề như thế này: Observable.fromArray( // có thể là danh sách về url ảnh trong SD
Hiện tại tôi đang sử dụng Node Fiber để viết mã đồng bộ phía máy chủ. Tôi chủ yếu xử lý lỗi bằng các khối try-catch, nhưng luôn có khả năng xảy ra lỗi trong các thư viện bên ngoài hoặc các đoạn mã bất đồng bộ nhỏ khác. Tôi đang nghĩ đến việc sử dụng tính năng tên miền mới để cố gắng giải quyết những lỗi này.
Có vẻ như node-debug là một shell xung quanh node-inspector phải không? Khi nào nên sử dụng mỗi loại? Câu trả lời hay nhất Nếu bạn cài đặt node-debug, bạn chỉ có thể truy cập vào lệnh node-debug. Nếu bạn cài đặt nút
Hiện tại tôi đang làm việc phía sau một proxy không cho phép tôi thực hiện HTTP GET của lệnh này Giai đoạn yêu cầu: Node node-sass/scripts/build.js Giai đoạn yêu cầu: gyp http GET https://
Tôi nghe nói node js có thể sử dụng được ở phía máy chủ. Tôi đã từng sử dụng jsp trước đây. Mã Java bên trong trang jsp không hiển thị cho máy khách. Nếu Node js chỉ là javascript thì tại sao nó lại vô hình với máy khách? Câu trả lời tốt nhất là đầu tiên, Không
Tôi đang di chuyển từ bản dựng node-waf sang hệ thống dựng node-gyp cho các tiện ích bổ sung gốc Node của mình. node-gyp cho biết nó hỗ trợ nhiều phiên bản mục tiêu, nhưng tôi không thể tìm thấy cách chỉ định mục tiêu khi sử dụng node-gyp
Với một $node, tôi đang cố gắng quyết định giữa hai cách sau để xuất ra $node đó. Hoặc $output = theme('node', $node); hoặc node_build_content($
Nếu cửa sổ A trong package.json mở ra một cửa sổ B mới, thì node-main có thể truy cập vào cửa sổ đó như thế nào? Đây là mã của tôi: package.json { "main": "index.html",
Tôi đang cố gắng chèn một nút chú thích trước một nút cụ thể ( ) trong xml của mình. Đây là phương pháp của nó: function test(xmlResponse) { var parser = new DOMParser
Tôi đang cố gắng thực hiện npm install wrtc bằng Node phiên bản 16.14.0 nhưng không thành công. Nó đưa ra mã lỗi npm 1 nên tôi đã thử thay đổi phiên bản Node thành lts trước đó là 14.19.0
Khi tôi chạy ứng dụng Node.js trong Visual Studio, tôi nhận được thông báo sau: DeprecationWarning: DeprecationWarning với 'node --debug' và 'node --debug-brk'
Tôi là một lập trình viên xuất sắc, rất giỏi!