小编Mar*_*ria的帖子

Mongoose:如何通过 model.findOneAndUpdate() 检查文档是否被修改

在 mongoose 中,我们可以检查更新操作是否修改了文档model.update()

model.update(query, update, function(err, raw){
    if (raw.nModified >= 1) console.log('document is modified!')
});
Run Code Online (Sandbox Code Playgroud)

有没有办法做同样的事情model.findOneAndUpdate()

model.findOneAndUpdate(query, update, { new: true }, function(err, doc){
    if (doc) {
        // So MongoDB found the document, but is there a way 
        // to know the document was indeed modified?
    }
});
Run Code Online (Sandbox Code Playgroud)

database mongoose mongodb node.js

6
推荐指数
1
解决办法
5399
查看次数

如何将中间件绑定到 socket.io 中的事件

现在您可以将中间件绑定到io.use(middleware);,但这仅在建立套接字连接时触发。有没有办法在将它传递给像 expressjs 那样的事件句柄之前拦截它?

换句话说....

express.js 中,您可以执行以下操作:

app.get('/', middleware1, middleware2, function(req, res){
    res.end(); 
});
Run Code Online (Sandbox Code Playgroud)

我可以在socket.io 中做同样的事情吗?

socket.on('someEvent', middleware1, middleware2, function(data){
    console.log(data); // data is now filtered by 2 previous middlewares
});
Run Code Online (Sandbox Code Playgroud)

javascript websocket node.js express socket.io

6
推荐指数
2
解决办法
2105
查看次数

将 $geoNear 与另一个集合结合起来

我有 2 个集合,resto并且meal(每个膳食文档都有其所属的 Resto id)。我想去附近至少有一顿饭的餐馆。现在,我可以获取附近的餐馆,但我如何组合才能确保他们至少吃一顿饭?

restoModel.aggregate([{
    "$geoNear": {
        "near": {
            "type": "Point",
            "coordinates": coordinates
        },
        "minDistance": 0,
        "maxDistance": 1000,
        "distanceField": "distance",
        "spherical": true,
        "limit": 10 // fetch 10 restos at a time
    }
}]);
Run Code Online (Sandbox Code Playgroud)

示例恢复文档:

{ 
  _id: "100", 
  location: { coordinates: [ -63, 42 ], type: "Point" },
  name: "Burger King"
}
Run Code Online (Sandbox Code Playgroud)

膳食文件样本:

{ 
  resto_id: "100", // restaurant that this meal belongs to
  name: "Fried Chicken",
  price: 12.99
}
Run Code Online (Sandbox Code Playgroud)

我可以创建一个管道,获取 10 家餐厅,每家餐厅都加入了相关的用餐文档,并删除不提供餐食的餐厅。但是,如果所有文档都没有吃饭,则一次获取可能会返回 0 个文档。我如何确保它继续搜索,直到返回 …

javascript mongoose mongodb node.js aggregation-framework

5
推荐指数
1
解决办法
1105
查看次数

MongoDB:find({...}).limit(#) 背后的真相

在MongoDB中,真的.find({...}).limit(#)限制查询数量吗?

我的意思是,当你这样做时db.collection.find(condition),不是已经浪费了计算能力来查询与给定条件匹配的所有结果吗?如果是这样,那么在它之后添加是否.limit()只是从查询结果中删除不需要的元素?

非常感谢您澄清这一点!

javascript database mongoose mongodb node.js

3
推荐指数
1
解决办法
1600
查看次数

MongoDB:不正确的更新计数

在我的数据库中,我有一个名为“fruits”的字段,它是一个简单的数组。在此数组中插入元素时,我习惯$addToSet仅插入此数组中不存在的元素。

我想知道我插入的元素是否真的修改了这个字段。但是,即使我尝试添加一个已经存在的元素,docModified回调中的参数也始终返回 1

model.update (
    { username: username }, // find the document
    { $addToSet : { fruits: "apple" } }, // add "apple" to fruits field
    function (err, docModified) {
        console.log(docModified);
        // !PROBLEM: this will print "1" no matter what
    }
);
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么?非常感谢!(顺便说一句,我正在使用猫鼬)

javascript mongoose mongodb node.js

3
推荐指数
1
解决办法
3213
查看次数

python:简单的布尔不等式运算符错误

使用不等式运算符,我必须定义一个过程周末,它以字符串作为输入,如果是'Saturday'或'Sunday'则返回布尔值True,否则返回False.

这是我的代码

def weekend(day):
    if day != 'Saturday' or day != 'Sunday':
        return False
    else:
        return True
Run Code Online (Sandbox Code Playgroud)

这似乎每天都会返回False,我不知道为什么,从逻辑上说它会起作用.o_o ..任何人都可以解释一下我太正常了:S

python inequality boolean return

2
推荐指数
2
解决办法
3136
查看次数

es6类:如何省略"this"关键字

在ES6中,是否可以创建局部变量并直接引用它们,而不是 this.像前面那样添加它们this.name.

例如,在下面的代码中,我可以做些什么来使写入{name}而不是{this.name}所有时间.(this.在变量前添加有点麻烦!)

class User extend React.Component {
    name = "Joe";

    render() {
        // is it possible to write {name} instead of {this.name}
        return <div>{name}</div>
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs babeljs ecmascript-next

2
推荐指数
1
解决办法
469
查看次数

Python:我的嵌套循环有什么问题?

使用while循环,我写了需要输入一个正整数,并打印出显示所有的整数乘法直至并包括输入号码的乘法表的过程.方程式的打印顺序很重要.

例如,print_multiplication_table(2)给出:
1*1
1*2
2*1
2*2

这是我的代码:

def print_multiplication_table(n):
    a = 1
    b = 1
    while a <= n:
        while b <= n:
            print str(a) + " * " + str(b)
            b = b + 1
        a = a + 1
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用,因为它只打印出来

1 * 1
1 * 2
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么?谢谢!

python loops nested while-loop

-2
推荐指数
1
解决办法
622
查看次数