Javascript Node.js:如何知道值是否在MongoDB数据库的集合中?
这一定是一个非常简单的问题,但我找不到一个方法来解决 我有一个非常基本的MongoDB文档集合,可以用JSON格式表示,如下所示:Javascript Node.js:如何知道值是否在MongoDB数据库的集合中?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,这一定是一个非常简单的问题,但我找不到一个方法来解决 我有一个非常基本的MongoDB文档集合,可以用JSON格式表示,如下所示: myDatabase.myCollection = { {hashkey: "hashkey1", data: "someData" }, {hashkey: "hashkey2", data: "someData" }, {hashkey: "hashkey3", data: "someData" } } 每个hashk
myDatabase.myCollection = {
{hashkey: "hashkey1",
data: "someData"
},
{hashkey: "hashkey2",
data: "someData"
},
{hashkey: "hashkey3",
data: "someData"
}
}
每个hashkey值都是唯一的
现在,我想在Node.js中编写以下代码:
// I use npm mongodb, sounds good ?
var mongodb = require('mongodb');
// initiating connection to myDatabase...
var db = "my_database_I_just_connected_to";
var myCollection = db.collection('myCollection');
var newHashkey = "hashkeyX";
if ("newHashkey_is_already_in_myCollection") {
doSomething();
} else {
doSomethingElse();
}
我正在寻找一种方法来获取布尔值“newHashkey已经在我的集合中”。使用我的示例数据库:
- 如果“hashkeyX”==“hashkey1”-->true
- 如果“hashkeyX”==“hashkey5”------>false
if (myCollection.findOne({hashkey: "hashkeyX"}) === null) {
doSomething();
} else {
doSomethingElse();
}
1) 获取此类布尔值的最佳方法是什么
2) [可选:]你能给我链接一些关于这些问题的好解释吗?如果你能像这样表示数据:
myDatabase.myCollection = {
"hashkey1": {
data: "someData"
},
"hashkey2": {
data: "someData"
},
"hashkey2": {
data: "someData"
}
}
然后你可以这样做:
if (db.collection(newHashkey)) {
doSomething();
} else {
doSomethingElse();
}
findOne
是一个异步操作,您必须使用回调并检查对象是否存在:
myCollection.findOne({hashkey: "hashkeyX"}, function(err, obj) {
if (err) {
// TODO: process error
}
if (obj) {
doSomething();
} else {
doSomethingElse();
}
这是合乎逻辑的。作为Node的新手,我经常犯回调错误。。。那么其他的答案呢?行不通?请查看node.js mongodb官方文档,它可能会有所帮助:异步功能强大、美观,需要我改变我的思维方式。。。它工作完美,感谢链接,我只有npm mongodb自述文件。。。谢谢!Np:),我还建议您尝试使用
mongoose
ODM来处理mongodb。我不明白“.myCollection(newHashkey)”。它应该在Node.js/mongodb模块中工作吗?我没有按照我想要的方式编写它。我纠正了它。