我试图在聚合期间$cond有条件地将$push多个整数放入一个数字数组中,$group但没有成功。这是我的代码:
Item.aggregate(
[
{
$group: {
_id: "$_id",
numbers: {
$push: {
$cond: {
if: { $gt: [ "$price.percent", 70 ] },
then: { $each: [10,25,50,70] },
else: null,
}
}
}
}
},
]
)
...
Run Code Online (Sandbox Code Playgroud)
是 Mongo DB 现在没有为此设置,还是我认为这一切都错了?
我正在尝试执行以下操作:
问题是.on("end")在.on("data")处理完每一行之前触发。处理完所有行.on("end")后如何触发.on("data")?
下面是我正在谈论的一个简单的例子:
import parse from 'csv-parse';
var parser = parse({});
fs.createReadStream(this.upload.location)
.pipe(parser)
.on("data", line => {
var num = Math.floor((Math.random() * 100) + 1);
num = num % 3;
num = num * 1000;
setTimeout( () => {
console.log('data process complete');
}, num);
})
.on("end", () => {
console.log('Done: parseFile');
next(null);
});
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我到处都在寻找在Node.js中headers exchange使用RabbitMQ的示例。如果有人能指出我正确的方向,那就太好了。这是我到目前为止的内容:
发布者方法(创建发布者)
RabbitMQ.prototype.publisher = function(exchange, type) {
console.log('New publisher, exchange: '+exchange+', type: '+type);
amqp.then(function(conn) {
conn.createConfirmChannel().then(function(ch) {
publishers[exchange] = {};
publishers[exchange].assert = ch.assertExchange(exchange, type, {durable: true});
publishers[exchange].ch = ch;
});
},function(err){
console.error("[AMQP]", err.message);
return setTimeout(function(){
self.connect(URI);
}, 1000);
}).then(null, console.log);
};
Run Code Online (Sandbox Code Playgroud)
发布方法
RabbitMQ.prototype.publish = function(exchange, routingKey, content, headers) {
try {
publishers[exchange].assert.then(function(){
publishers[exchange].ch.publish(exchange, routingKey, new Buffer(content), { persistent: true, headers: headers }, function(err, ok) {
if (err) {
console.error("[AMQP] publish", err);
offlinePubQueue.push([exchange, routingKey, …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置a Dockerfile将主机目录安装到我指定的docker容器目录(因此代码更改将立即反映出来)。当我运行docker run -p 3000:3000 -d -v ~/Projects/test:/app test文件时,将挂载文件,并且一切正常。但是,一旦关闭容器,文件更改就不会保留在容器中,就像我volumes从docker-compose文件中运行时所做的更改一样。
这是我的Dockerfile:
FROM node:onbuild
EXPOSE 3000
RUN mkdir /app
VOLUME ./:/app/
WORKDIR /app/
RUN npm install -g nodemon
CMD nodemon server.js
Run Code Online (Sandbox Code Playgroud)
这是一个工作的docker-compose.yml:
test:
build: ./
volumes:
- ./:/app/
working_dir: /app/
command: npm start
ports:
- "3000:3000"
Run Code Online (Sandbox Code Playgroud)