updated indexes

This commit is contained in:
Andris Reinman 2017-07-10 21:55:54 +03:00
parent f09d81f3d2
commit 3be959545f
5 changed files with 464 additions and 2137 deletions

View file

@ -1,4 +1,3 @@
{
"extends": "nodemailer",
"fix": false
"extends": "nodemailer"
}

124
imap.js
View file

@ -348,28 +348,28 @@ server.onDelete = function(path, session, callback) {
db.database
.collection('messages')
.aggregate(
[
{
$match: {
mailbox: mailbox._id
}
},
{
$group: {
_id: {
mailbox: '$mailbox'
},
storageUsed: {
$sum: '$size'
[
{
$match: {
mailbox: mailbox._id
}
},
{
$group: {
_id: {
mailbox: '$mailbox'
},
storageUsed: {
$sum: '$size'
}
}
}
],
{
cursor: {
batchSize: 1
}
}
],
{
cursor: {
batchSize: 1
}
}
)
.toArray((err, res) => {
if (err) {
@ -1629,30 +1629,30 @@ server.onSearch = function(path, options, session, callback) {
let regex = Buffer.from(term.value, 'binary').toString().replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
let entry = term.value
? {
headers: {
$elemMatch: {
key: term.header,
value: !ne
headers: {
$elemMatch: {
key: term.header,
value: !ne
? {
$regex: regex,
$options: 'i'
}
$regex: regex,
$options: 'i'
}
: {
$not: {
$regex: regex,
$options: 'i'
}
}
}
}
}
$not: {
$regex: regex,
$options: 'i'
}
}
}
}
}
: {
'headers.key': !ne
'headers.key': !ne
? term.header
: {
$ne: term.header
}
};
$ne: term.header
}
};
parent.push(entry);
}
break;
@ -1677,23 +1677,23 @@ server.onSearch = function(path, options, session, callback) {
}
let entry = !op
? [
{
$gte: value
},
{
$lt: new Date(value.getTime() + 24 * 3600 * 1000)
}
]
{
$gte: value
},
{
$lt: new Date(value.getTime() + 24 * 3600 * 1000)
}
]
: {
[op]: value
};
[op]: value
};
entry = {
idate: !ne
? entry
: {
$not: entry
}
$not: entry
}
};
parent.push(entry);
@ -1720,23 +1720,23 @@ server.onSearch = function(path, options, session, callback) {
}
let entry = !op
? [
{
$gte: value
},
{
$lt: new Date(value.getTime() + 24 * 3600 * 1000)
}
]
{
$gte: value
},
{
$lt: new Date(value.getTime() + 24 * 3600 * 1000)
}
]
: {
[op]: value
};
[op]: value
};
entry = {
hdate: !ne
? entry
: {
$not: entry
}
$not: entry
}
};
parent.push(entry);
@ -1770,8 +1770,8 @@ server.onSearch = function(path, options, session, callback) {
size: !ne
? entry
: {
$not: entry
}
$not: entry
}
};
parent.push(entry);

View file

@ -1,312 +1,395 @@
[{
"collection": "users",
"indexes": [{
"name": "users",
"key": {
"username": 1
},
"unique": true,
"background": true
}]
}, {
"collection": "users",
"indexes": [{
"name": "show_new",
"key": {
"created": -1
},
"background": true
}]
}, {
"collection": "addresses",
"indexes": [{
"name": "address",
"key": {
"address": 1
},
"unique": true,
"background": true
}]
}, {
"collection": "addresses",
"indexes": [{
"name": "user",
"key": {
"user": 1
},
"background": true
}]
}, {
"collection": "mailboxes",
"indexes": [{
"name": "find_by_user",
"key": {
"user": 1,
"path": 1
},
"background": true
}]
}, {
"collection": "mailboxes",
"indexes": [{
"name": "user_subscribed",
"key": {
"user": 1,
"subscribed": 1
},
"background": true
}]
}, {
"collection": "mailboxes",
"indexes": [{
"name": "find_by_type",
"key": {
"user": 1,
"specialUse": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "mailbox_messages",
"key": {
"mailbox": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "user_messages",
"key": {
"user": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "mailbox_uid",
"key": {
"mailbox": 1,
"uid": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "mailbox_modseq_uid",
"key": {
"mailbox": 1,
"modseq": 1,
"uid": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "newer_first",
"key": {
"mailbox": 1,
"uid": -1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "mailbox_flags",
"key": {
"mailbox": 1,
"flags": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "by_modseq",
"key": {
"mailbox": 1,
"modseq": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "by_idate",
"key": {
"mailbox": 1,
"idate": 1,
"_id": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "by_idate_newer",
"key": {
"mailbox": 1,
"idate": -1,
"_id": -1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "by_idate_newer",
"key": {
"mailbox": 1,
"idate": -1,
"_id": -1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "by_hdate",
"key": {
"mailbox": 1,
"hdate": 1,
"msgid": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "by_size",
"key": {
"mailbox": 1,
"size": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "by_headers",
"key": {
"mailbox": 1,
"headers.key": 1,
"headers.value": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "fulltext",
"key": {
"mailbox": 1,
"text": "text"
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "mailbox_seen_flag",
"key": {
"mailbox": 1,
"seen": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "mailbox_deleted_flag",
"key": {
"mailbox": 1,
"deleted": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "mailbox_flagged_flag",
"key": {
"mailbox": 1,
"flagged": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "mailbox_draft_flag",
"key": {
"mailbox": 1,
"draft": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "has_attachment",
"key": {
"mailbox": 1,
"ha": 1
},
"background": true
}]
}, {
"collection": "messages",
"indexes": [{
"name": "retention_time",
"key": {
"exp": 1,
"rdate": 1
},
"background": true
}]
}, {
"collection": "attachments.files",
"indexes": [{
"name": "attachment_hash",
"key": {
"metadata.h": 1
},
"background": true
}]
}, {
"collection": "attachments.files",
"indexes": [{
"name": "related_attachments",
"key": {
"metadata.c": 1,
"metadata.m": 1
},
"background": true
}]
}, {
"collection": "journal",
"indexes": [{
"name": "mailbox_modseq",
"key": {
"mailbox": 1,
"modseq": 1
},
"background": true
}]
}, {
"collection": "journal",
"indexes": [{
"name": "autoexpire",
"expireAfterSeconds": 21600,
"key": {
"created": 1
},
"background": true
}]
}]
[
{
"collection": "users",
"indexes": [
{
"name": "users",
"key": {
"username": 1
},
"unique": true,
"background": true
}
]
},
{
"collection": "users",
"indexes": [
{
"name": "show_new",
"key": {
"created": -1
},
"background": true
}
]
},
{
"collection": "addresses",
"indexes": [
{
"name": "address",
"key": {
"address": 1
},
"unique": true,
"background": true
}
]
},
{
"collection": "addresses",
"indexes": [
{
"name": "user",
"key": {
"user": 1
},
"background": true
}
]
},
{
"collection": "mailboxes",
"indexes": [
{
"name": "find_by_user",
"key": {
"user": 1,
"path": 1
},
"background": true
}
]
},
{
"collection": "mailboxes",
"indexes": [
{
"name": "user_subscribed",
"key": {
"user": 1,
"subscribed": 1
},
"background": true
}
]
},
{
"collection": "mailboxes",
"indexes": [
{
"name": "find_by_type",
"key": {
"user": 1,
"specialUse": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "mailbox_messages",
"key": {
"mailbox": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "user_messages",
"key": {
"user": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "mailbox_uid",
"key": {
"mailbox": 1,
"uid": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "mailbox_modseq_uid",
"key": {
"mailbox": 1,
"modseq": 1,
"uid": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "newer_first",
"key": {
"mailbox": 1,
"uid": -1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "mailbox_flags",
"key": {
"mailbox": 1,
"flags": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "by_modseq",
"key": {
"mailbox": 1,
"modseq": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "by_idate",
"key": {
"mailbox": 1,
"idate": 1,
"_id": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "by_idate_newer",
"key": {
"mailbox": 1,
"idate": -1,
"_id": -1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "by_hdate",
"key": {
"mailbox": 1,
"hdate": 1,
"msgid": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "by_size",
"key": {
"mailbox": 1,
"size": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "by_headers",
"key": {
"mailbox": 1,
"headers.key": 1,
"headers.value": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "fulltext",
"key": {
"mailbox": 1,
"text": "text"
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "mailbox_seen_flag",
"key": {
"mailbox": 1,
"seen": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "mailbox_deleted_flag",
"key": {
"mailbox": 1,
"deleted": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "mailbox_flagged_flag",
"key": {
"mailbox": 1,
"flagged": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "mailbox_draft_flag",
"key": {
"mailbox": 1,
"draft": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "has_attachment",
"key": {
"mailbox": 1,
"ha": 1
},
"background": true
}
]
},
{
"collection": "messages",
"indexes": [
{
"name": "retention_time",
"partialFilterExpression": {
"exp": true
},
"key": {
"exp": 1,
"rdate": 1
},
"background": true
}
]
},
{
"collection": "attachments.files",
"indexes": [
{
"name": "attachment_hash",
"key": {
"metadata.h": 1
},
"background": true
}
]
},
{
"collection": "attachments.files",
"indexes": [
{
"name": "related_attachments",
"key": {
"metadata.c": 1,
"metadata.m": 1
},
"background": true
}
]
},
{
"collection": "journal",
"indexes": [
{
"name": "mailbox_modseq",
"key": {
"mailbox": 1,
"modseq": 1
},
"background": true
}
]
},
{
"collection": "journal",
"indexes": [
{
"name": "autoexpire",
"expireAfterSeconds": 21600,
"key": {
"created": 1
},
"background": true
}
]
}
]

1755
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -12,7 +12,7 @@
"devDependencies": {
"browserbox": "^0.9.1",
"chai": "^4.0.2",
"eslint-config-nodemailer": "^1.0.0",
"eslint-config-nodemailer": "^1.2.0",
"grunt": "^1.0.1",
"grunt-cli": "^1.2.0",
"grunt-eslint": "^20.0.0",
@ -26,25 +26,25 @@
"generate-password": "^1.3.0",
"html-to-text": "^3.3.0",
"iconv-lite": "^0.4.18",
"joi": "^10.5.2",
"joi": "^10.6.0",
"libbase64": "^0.2.0",
"libmime": "^3.1.0",
"libqp": "^1.1.0",
"mailsplit": "^4.0.2",
"mongodb": "^2.2.28",
"mongodb": "^2.2.30",
"node-redis-scripty": "0.0.5",
"nodemailer": "^4.0.1",
"npmlog": "^4.1.0",
"npmlog": "^4.1.2",
"qrcode": "^0.8.2",
"redfour": "^1.0.0",
"redis": "^2.7.1",
"restify": "^4.3.0",
"restify": "^5.0.0",
"seq-index": "^1.1.0",
"smtp-server": "^3.0.1",
"speakeasy": "^2.0.0",
"toml": "^2.3.2",
"utf7": "^1.0.2",
"uuid": "^3.0.1"
"uuid": "^3.1.0"
},
"repository": {
"type": "git",