【发布时间】:2018-06-02 19:37:14
【问题描述】:
我在“registosSRS”集合中有此文档:
{
"_id" : ObjectId("5a3a2b47d04b7e07f8a273dc"),
"sessao" : "5",
"valorRelacao" : "4.89",
"valorObjectivo" : "4.97",
"valorAbordagem" : "4.88",
"valorGeral" : "4.92",
"cliente_id" : "5a1407c8099ca208e48170a5",
"email" : "mgoncalves@psi.uminho.pt",
"data" : 1513761607431
}
此文档收藏在sessao 中。我在另一个地方创建了这个文档,并将 dadosSRS 设置为 {},因为我想稍后更改这个值。是否可以在不创建此值的情况下添加它?
"_id" : ObjectId("5a3a2b41d04b7e07f8a273db"),
"cliente" : ObjectId("5a1407c8099ca208e48170a5"),
"data" : 1513761601705,
"numero" : "5",
"dadosORS" : ObjectId("5a3a2b41d04b7e07f8a273da"),
"dadosSRS" : {
}
然后我在集合 sessao 中查找客户端和编号 os 会话,就像在 registosSRS 中一样,以添加 registosSRS id。
mongoClient.collection('sessao', function(err,collection){
collection.update(
{cliente:result.cliente_id, numero:dadosSRS.sessao},
{$set: {'dadosSRS':dadosSessao.dadosSRS}},
function(result){
if (err) throw err;
console.log(result);
console.log('encontrou registo do cliente na collection registoSRS: ' + result);
});
但结果为空,虽然我有客户端和会话号。我做错了什么?
【问题讨论】:
-
是sessao。对不起。
-
您的查询可能有问题。你可以尝试运行这样的东西吗:
db.sessao.findOne({cliente:"5a3a2b47d04b7e07f8a273dc"}, function(err, result{ console.log(result) }}); -
我在节点上做过,mongoClient.collection('sessao', function(err,collection){ collection.findOne({cliente:"5a3a2b47d04b7e07f8a273dc"}, function(err, result){ console.log ('result' + result) } ); 但结果仍然为空。你想让我在 mongo shell 中做吗?
-
您需要先将字符串转换为
ObjectId,然后才能在查询中使用它,如answer -
如果我这样做 db.sessao.findOne({cliente:ObjectId("5a1407c8099ca208e48170a5")});它返回对象