我在mongodb中有一个集合,其中包含类别,而我还有一个包含公司的集合。在companys集合中,我有一个名为“ categories”的数组,其中包含Categories集合的_id。
在用户界面上,用户可以通过类别名称选择类别-并将其发布到服务器上。
将有效负载插入mongodb时,我想在insertOne()函数内实现一些find()查询,以获取类别的_id。
我可以在noSqlBooster中做到这一点-
db.companies.insertOne({"key": db.categories.find({"categoryName":"thisCategory"}, {"categories_idToShowOnly":1}).limit(1)[0].categories_idToShowOnly});
,它将插入otherCollection中的值。
问题是-如何使用nodejs实现相同的目标?
当我尝试将任何数据插入到mongo中时-
var data = {
"x": "y",
"a": "b"
};
mongoClient.connect(config.mongoUrl.url, { useNewUrlParser: true }, (connectionError, db) => {
if (!connectionError) {
var dbo = db.db(config.mongoUrl.db);
dbo.collection(collection).insertOne(data, (insertError, insertResults) => {
if (!insertError) {
callback();
}
});
}
我没问题,但是我不能将mongodb查询作为值放在数据对象中。
出于安全原因,我不想使用eval。在mongodb服务器中查看存储函数并运行它,但是我得到了相同的观点-我可以将查询放入存储函数中吗?
答案 0 :(得分:0)
您正在寻找MongoDB的node.js驱动程序。在下面的链接中找到它 https://mongodb.github.io/node-mongodb-native/ 另外,找到此教程链接,了解如何开始使用它。 https://www.w3schools.com/nodejs/nodejs_mongodb.asp