通过nodejs在insertOne()中使用mongodb find()

时间:2019-04-12 08:42:26

标签: node.js mongodb

我在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服务器中查看存储函数并运行它,但是我得到了相同的观点-我可以将查询放入存储函数中吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找MongoDB的node.js驱动程序。在下面的链接中找到它 https://mongodb.github.io/node-mongodb-native/ 另外,找到此教程链接,了解如何开始使用它。 https://www.w3schools.com/nodejs/nodejs_mongodb.asp