在mongodb集合中查找和插入无法插入完整的文档

时间:2016-05-16 19:04:35

标签: mongodb mongodb-query database

我是Mongo Db的新手并尝试遍历mongo db集合中的文档并插入该文档的副本。

以下是示例文档

{
    "_id" : ObjectId("573a15351f7409771c330acd"),
    "internal" : {
        "id" : "562e0cade4b0d50120cee6c1"
    },
    "status" : "ACTIVE",
    "integrationKeys" : {
        "associationId" : "dev-aws_moratuwauni"
    },
    "external" : {
        "id" : "8a510sba2-2c0d-4e87-9145-daf33cfcff36"
    },
    "links" : [ ],
    "createdDate" : "2015-10-26T11:10:17+0000",
    "updatedDate" : "2015-10-26T11:10:17+0000",
    "isManuallyCreated" : true
}

我在mongo db shell中尝试这个。这是我循环和插入的方式。

db.courses.find({ $and: [{"isManuallyUpdated": {$ne: true}}, {"isManuallyCreated": {$ne: true}}]}).limit(1).forEach(function(doc) 
{
    $set: {doc._id = ObjectId()};
    $set: {doc.integrationKeys.associationId = "dev-kandyuni"};
    $set: {doc.isManuallyCreated = true};
    db.courses.insert(doc)
});

这会创建一个新文档,但只有2个键值,如下所示。

{
    "_id" : ObjectId("573a149e1f7409771c330acb"),
    "isManuallyCreated" : true
}

我也尝试过db.courses.save(doc),遗憾的是结果是一样的。可以请一些帮助。

1 个答案:

答案 0 :(得分:0)

问题在于我用于检索数据的查询。新查询是

db.courses.find({ $and: [{"integrationKeys.associationId": "dev-kandyuni"}, {"isManuallyCreated": true}]});