是否可以拆分字符串,然后从生成的数组中删除空值?
我已经尝试过,但是path
的值是数组数组,而不是字符串数组。
我假设通过使用数组将按顺序执行该命令,但似乎并没有这样做...
这在 $ project 中:
{
path: [
{
$split: ['$filename', '/']
}, {
$filter: {
input: '$path',
as: 'str',
cond: {
$ne: ['$$str', '']
}
}
}
]
}
一些示例文档:
{ filename: '/a/b/c.txt' }
{ filename: '/abc/123.txt' }
{ filename: '/path/to/file.txt' }
当前输出:
{
path: [
['', 'a', 'b', 'c.txt'],
null
]
}
我想要:
{
path: ['a', 'b', 'c.txt']
}
我可以使用两个 $ project 阶段来实现这一点,但这似乎是多余的。是否可以分一个阶段进行?
答案 0 :(得分:3)
您想做的事情可以在单个$project
阶段完成
exports.seed = function(knex, Promise) {
// Deletes ALL existing entries
return knex('user_goingto_events').del()
.then(function () {
// Inserts seed entries
return knex('user_goingto_events').insert([
{id: 1, user_id: 1, event_id: 1},
{id: 2, user_id: 1, event_id: 2},
{id: 3, user_id: 1, event_id: 3},
{id: 4, user_id: 2, event_id: 4},
{id: 5, user_id: 2, event_id: 5},
{id: 6, user_id: 2, event_id: 6}
])
})
}
exports.seed = function(knex, Promise) {
// Deletes ALL existing entries
return knex('user_interestedin_events').del()
.then(function () {
// Inserts seed entries
return knex('user_interestedin_events').insert([
{id: 1, user_id: 1, event_id: 4},
{id: 2, user_id: 1, event_id: 5},
{id: 3, user_id: 1, event_id: 6},
{id: 4, user_id: 2, event_id: 1},
{id: 5, user_id: 2, event_id: 2},
{id: 6, user_id: 2, event_id: 3}
])
})
}