"在Insert"中找到()在MongoDB?

时间:2016-05-22 19:25:44

标签: mongodb mongodb-query

民间, 我有一个名为' Animals',示例文档 -

的集合
cat -v $main_file

我的问题是这样的 - 如何在mongo shell中编写一个Insert语句,以编程方式生成' parent-id' (如果已经存在)?我希望能够写出这样的东西 -

first_file.txt^M
second_file.txt^M
third_file.txt^M
^M
^M

提前致谢

2 个答案:

答案 0 :(得分:4)

由于mongo shell只是MongoDB服务器的交互式JS接口,所以不可能这样做,因此在进行插入之前需要对父ID进行单独的查询;您不能在插入文档中包含查询操作。

以下示例演示了这一点:

var parent_id = db.animals.findOne({ name: 'Mammal' })._id;
var insertDoc = {
    "author" : "xxx@hotmail.com",
    "name" : "Dog",
    "status" : "active",
    "parent_id" : parent_id
};
db.animals.insert(insertDoc);

答案 1 :(得分:1)

只需尝试...

db.animals.insert( {
   "author" : "xxx@hotmail.com",
   "name" : "Dog",
   "status" : "active",
   "parent_id" : db.animals.findOne( { "name": "Mammal" } )
} )