MongoDB:如何插入具有应通过查询评估的值的文档?

时间:2014-07-05 03:36:24

标签: mongodb

像这样:

我有一份文件,

{ "_id": "java", "belongs":"Oracle"}

我希望插入一个与java相同的新文档。

{ "_id":"mysql", "belongs":db.collection.find({_id:"oracle"}, {"_id":0, "belongs":1})}

我该怎么做?

1 个答案:

答案 0 :(得分:0)

这里的关键是要记住find()返回游标而不是文档。另一个重要的细节是你应该使用" java"来查询文档。 _id,而不是" oracle"。然后,您可以在belongs中使用该文档的insert()字段。那么,你想要做的是:

db.collection.insert({ 
   _id: "mysql", 
   belongs: db.collection.findOne({_id: "java"}).belongs
})

这使用findOne方法,该方法返回与查询匹配的第一个文档。由于在MongoDB中_id用作集合的主键,因此无论如何只应该有一个这样的文档。