gpt4 book ai didi

node.js - 检查 Mongoose 中是否存在文档(Node.js)

转载 作者:可可西里 更新时间:2023-11-01 09:31:40 25 4
gpt4 key购买 nike

我见过很多在 mongoDB 中查找文档的方法,这些方法不会影响性能,即您不会真正检索文档;相反,如果文档存在或不存在,您只需检索 1 或 0 的计数。

在 mongoDB 中,可能可以这样做:

db.<collection>.find(...).limit(1).size()

在 Mongoose 中,你要么有回调,要么没有。但在这两种情况下,您都在检索条目而不是检查计数。我只是想要一种方法来检查 mongoose 中是否存在文档——我不想要文档本身。

编辑:现在摆弄异步 API,我有以下代码:

for (var i = 0; i < deamons.length; i++){
var deamon = deamons[i]; // get the deamon from the parsed XML source
deamon = createDeamonDocument(deamon); // create a PSDeamon type document
PSDeamon.count({deamonId: deamon.deamonId}, function(error, count){ // check if the document exists
if (!error){
if (count == 0){
console.log('saving ' + deamon.deamonName);
deamon.save() // save
}else{
console.log('found ' + deamon.leagueName);
}
}
})
}

最佳答案

您必须阅读有关 javascript 作用域的内容。无论如何尝试下面的代码,

for (var i = 0; i < deamons.length; i++) {
(function(d) {
var deamon = d
// create a PSDeamon type document
PSDeamon.count({
deamonId : deamon.deamonId
}, function(error, count) {// check if the document exists
if (!error) {
if (count == 0) {
console.log('saving ' + deamon.deamonName);
// get the deamon from the parsed XML source
deamon = createDeamonDocument(deamon);
deamon.save() // save
} else {
console.log('found ' + deamon.leagueName);
}
}
})
})(deamons[i]);
}

注意:由于它包含了一些db操作,所以我没有测试。

关于node.js - 检查 Mongoose 中是否存在文档(Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com