首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDb脚本ReferenceError

MongoDb脚本ReferenceError
EN

Stack Overflow用户
提问于 2019-07-11 04:48:15
回答 1查看 53关注 0票数 0

我构建了以下MongoDB脚本来组织我的purchaseorders集合:

代码语言:javascript
复制
db.purchaseorders.find({}).snapshot().forEach(function(purchaseOrder)
{    
    let items = [];
    purchaseOrder.items.map(item => {

        let dataItem = {};
        dataItem.state = item.state;
        dataItem.requestedQuantity = item.requestedQuantity;
        dataItem.startDateTime = purchaseOrder.creationDateTime;

        items.push(dataItem);

        printjson(dataItem);
    });


    let data = {};
    data.code = purchaseOrder.code;
    data.state = purchaseOrder.state;
    data.items = items;

    printjson(data)


    db.purchaseorders.update({
        _id: purchaseOrder._id
    },
    {
        $set: data
    });
});

在尝试运行时,我得到以下错误:

代码语言:javascript
复制
MongoDB shell version v3.6.4
connecting to: mongodb://127.0.0.1:27017/testdb
MongoDB server version: 3.6.4
Server has startup warnings:
2019-07-10T06:58:42.825-0300 I CONTROL  [initandlisten]
2019-07-10T06:58:42.826-0300 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-07-10T06:58:42.826-0300 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-07-10T06:58:42.826-0300 I CONTROL  [initandlisten]
>
> db.purchaseorders.find({}).snapshot().forEach(function(purchaseOrder)
... {
...     let items = [];
...     purchaseOrder.items.map(item => {
...
...         let dataItem = {};
...         dataItem.state = item.state;
...         dataItem.requestedQuantity = item.requestedQuantity;
...         dataItem.startDateTime = purchaseOrder.creationDateTime;
...
...         items.push(dataItem);
...
...         printjson(dataItem);
...     });
...
...
>     let data = {};
>     data.code = purchaseOrder.code;
2019-07-10T17:44:09.664-0300 E QUERY    [thread1] ReferenceError: purchaseOrder is not defined :
@(shell):1:1
>     data.state = purchaseOrder.state;
2019-07-10T17:44:09.664-0300 E QUERY    [thread1] ReferenceError: purchaseOrder is not defined :
@(shell):1:1
>     data.items = items;
2019-07-10T17:44:09.665-0300 E QUERY    [thread1] ReferenceError: items is not defined :
@(shell):1:1
>
>     printjson(data)
{ }
>
>
>     db.purchaseorders.update({
...         _id: purchaseOrder._id
...     },
...     {
...         $set: data
...     });
2019-07-10T17:44:09.668-0300 E QUERY    [thread1] ReferenceError: purchaseOrder is not defined :
@(shell):2:9
> });
2019-07-10T17:44:09.668-0300 E QUERY    [thread1] SyntaxError: expected expression, got '}' @(shell):1:0
>

我搞不懂为什么我要买这些ReferenceError

EN

回答 1

Stack Overflow用户

发布于 2019-07-11 15:12:21

当您连续键入(或复制-粘贴)两个空行时,shell将取消输入并返回到提示。您可以看到提示符从...改回>的位置。

删除let data = {};db.purchaseorders.update行之前的两个空行,然后重试。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56978419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档